From 4f4527eaa976d407948d20998b46bc1489c86b2c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 20 Mar 2025 20:47:42 +0000 Subject: [PATCH 1/9] docs: refine comments on multipart params (#362) chore(internal): make multipart assertions more robust chore(internal): remove unnecessary `assertNotNull` calls --- .../com/withorb/api/core/http/HttpRequestBodies.kt | 11 +++++------ .../api/models/AlertCreateForCustomerParamsTest.kt | 3 --- .../AlertCreateForExternalCustomerParamsTest.kt | 3 --- .../models/AlertCreateForSubscriptionParamsTest.kt | 3 --- .../com/withorb/api/models/AlertUpdateParamsTest.kt | 2 -- .../com/withorb/api/models/CouponCreateParamsTest.kt | 3 --- .../withorb/api/models/CreditNoteCreateParamsTest.kt | 3 --- .../CustomerBalanceTransactionCreateParamsTest.kt | 3 --- .../withorb/api/models/CustomerCreateParamsTest.kt | 3 --- ...CustomerCreditTopUpCreateByExternalIdParamsTest.kt | 3 --- .../api/models/CustomerCreditTopUpCreateParamsTest.kt | 3 --- .../models/CustomerUpdateByExternalIdParamsTest.kt | 4 ---- .../withorb/api/models/CustomerUpdateParamsTest.kt | 4 ---- .../models/DimensionalPriceGroupCreateParamsTest.kt | 3 --- .../api/models/EventBackfillCreateParamsTest.kt | 3 --- .../com/withorb/api/models/EventIngestParamsTest.kt | 3 --- .../com/withorb/api/models/EventSearchParamsTest.kt | 3 --- .../com/withorb/api/models/EventUpdateParamsTest.kt | 3 --- .../com/withorb/api/models/InvoiceCreateParamsTest.kt | 3 --- .../com/withorb/api/models/InvoiceIssueParamsTest.kt | 4 ---- .../api/models/InvoiceLineItemCreateParamsTest.kt | 2 -- .../withorb/api/models/InvoiceMarkPaidParamsTest.kt | 3 --- .../com/withorb/api/models/InvoiceUpdateParamsTest.kt | 4 ---- .../com/withorb/api/models/ItemCreateParamsTest.kt | 2 -- .../com/withorb/api/models/ItemUpdateParamsTest.kt | 4 ---- .../com/withorb/api/models/MetricCreateParamsTest.kt | 3 --- .../com/withorb/api/models/MetricUpdateParamsTest.kt | 4 ---- .../com/withorb/api/models/PlanCreateParamsTest.kt | 3 --- .../api/models/PlanExternalPlanIdUpdateParamsTest.kt | 4 ---- .../com/withorb/api/models/PlanUpdateParamsTest.kt | 4 ---- .../com/withorb/api/models/PriceEvaluateParamsTest.kt | 3 --- .../models/PriceExternalPriceIdUpdateParamsTest.kt | 4 ---- .../com/withorb/api/models/PriceUpdateParamsTest.kt | 4 ---- .../api/models/SubscriptionCancelParamsTest.kt | 3 --- .../api/models/SubscriptionCreateParamsTest.kt | 4 ---- .../models/SubscriptionPriceIntervalsParamsTest.kt | 4 ---- .../SubscriptionSchedulePlanChangeParamsTest.kt | 3 --- .../api/models/SubscriptionTriggerPhaseParamsTest.kt | 4 ---- ...tionUnscheduleFixedFeeQuantityUpdatesParamsTest.kt | 2 -- .../SubscriptionUpdateFixedFeeQuantityParamsTest.kt | 3 --- .../api/models/SubscriptionUpdateParamsTest.kt | 4 ---- .../api/models/SubscriptionUpdateTrialParamsTest.kt | 3 --- 42 files changed, 5 insertions(+), 139 deletions(-) diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/core/http/HttpRequestBodies.kt b/orb-java-core/src/main/kotlin/com/withorb/api/core/http/HttpRequestBodies.kt index d0a1330b..3463de9e 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/core/http/HttpRequestBodies.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/core/http/HttpRequestBodies.kt @@ -9,7 +9,6 @@ import com.fasterxml.jackson.databind.json.JsonMapper import com.fasterxml.jackson.databind.node.JsonNodeType import com.withorb.api.core.MultipartField import com.withorb.api.errors.OrbInvalidDataException -import java.io.ByteArrayInputStream import java.io.InputStream import java.io.OutputStream import kotlin.jvm.optionals.getOrNull @@ -74,12 +73,12 @@ internal fun multipartFormData( when (node.nodeType) { JsonNodeType.MISSING, JsonNodeType.NULL -> emptySequence() - JsonNodeType.BINARY -> sequenceOf(name to ByteArrayInputStream(node.binaryValue())) - JsonNodeType.STRING -> sequenceOf(name to node.textValue().toInputStream()) + JsonNodeType.BINARY -> sequenceOf(name to node.binaryValue().inputStream()) + JsonNodeType.STRING -> sequenceOf(name to node.textValue().inputStream()) JsonNodeType.BOOLEAN -> - sequenceOf(name to node.booleanValue().toString().toInputStream()) + sequenceOf(name to node.booleanValue().toString().inputStream()) JsonNodeType.NUMBER -> - sequenceOf(name to node.numberValue().toString().toInputStream()) + sequenceOf(name to node.numberValue().toString().inputStream()) JsonNodeType.ARRAY -> node.elements().asSequence().flatMap { element -> serializePart("$name[]", element) @@ -92,7 +91,7 @@ internal fun multipartFormData( null -> throw OrbInvalidDataException("Unexpected JsonNode type: ${node.nodeType}") } - private fun String.toInputStream(): InputStream = ByteArrayInputStream(toByteArray()) + private fun String.inputStream(): InputStream = toByteArray().inputStream() override fun writeTo(outputStream: OutputStream) = entity.writeTo(outputStream) diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/AlertCreateForCustomerParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/AlertCreateForCustomerParamsTest.kt index b06394a3..a8e13c45 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/AlertCreateForCustomerParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/AlertCreateForCustomerParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import kotlin.jvm.optionals.getOrNull -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -45,7 +44,6 @@ internal class AlertCreateForCustomerParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.currency()).isEqualTo("currency") assertThat(body.type()).isEqualTo(AlertCreateForCustomerParams.Type.CREDIT_BALANCE_DEPLETED) assertThat(body.thresholds().getOrNull()) @@ -63,7 +61,6 @@ internal class AlertCreateForCustomerParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.currency()).isEqualTo("currency") assertThat(body.type()).isEqualTo(AlertCreateForCustomerParams.Type.CREDIT_BALANCE_DEPLETED) } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/AlertCreateForExternalCustomerParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/AlertCreateForExternalCustomerParamsTest.kt index cad78334..c3ad2af0 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/AlertCreateForExternalCustomerParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/AlertCreateForExternalCustomerParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import kotlin.jvm.optionals.getOrNull -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -49,7 +48,6 @@ internal class AlertCreateForExternalCustomerParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.currency()).isEqualTo("currency") assertThat(body.type()) .isEqualTo(AlertCreateForExternalCustomerParams.Type.CREDIT_BALANCE_DEPLETED) @@ -70,7 +68,6 @@ internal class AlertCreateForExternalCustomerParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.currency()).isEqualTo("currency") assertThat(body.type()) .isEqualTo(AlertCreateForExternalCustomerParams.Type.CREDIT_BALANCE_DEPLETED) diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/AlertCreateForSubscriptionParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/AlertCreateForSubscriptionParamsTest.kt index f591ae3c..6f3678cd 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/AlertCreateForSubscriptionParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/AlertCreateForSubscriptionParamsTest.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -48,7 +47,6 @@ internal class AlertCreateForSubscriptionParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.thresholds()) .containsExactly( AlertCreateForSubscriptionParams.Threshold.builder().value(0.0).build() @@ -70,7 +68,6 @@ internal class AlertCreateForSubscriptionParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.thresholds()) .containsExactly( AlertCreateForSubscriptionParams.Threshold.builder().value(0.0).build() diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/AlertUpdateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/AlertUpdateParamsTest.kt index a5ca13a4..22c57724 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/AlertUpdateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/AlertUpdateParamsTest.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -39,7 +38,6 @@ internal class AlertUpdateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.thresholds()) .containsExactly(AlertUpdateParams.Threshold.builder().value(0.0).build()) } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/CouponCreateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/CouponCreateParamsTest.kt index a1a43bcd..67a6283e 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/CouponCreateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/CouponCreateParamsTest.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -30,7 +29,6 @@ internal class CouponCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.discount()) .isEqualTo( CouponCreateParams.Discount.ofNewCouponPercentage( @@ -58,7 +56,6 @@ internal class CouponCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.discount()) .isEqualTo( CouponCreateParams.Discount.ofNewCouponPercentage( diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/CreditNoteCreateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/CreditNoteCreateParamsTest.kt index 039d6042..6dfc4317 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/CreditNoteCreateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/CreditNoteCreateParamsTest.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -38,7 +37,6 @@ internal class CreditNoteCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.lineItems()) .containsExactly( CreditNoteCreateParams.LineItem.builder() @@ -64,7 +62,6 @@ internal class CreditNoteCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.lineItems()) .containsExactly( CreditNoteCreateParams.LineItem.builder() diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerBalanceTransactionCreateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerBalanceTransactionCreateParamsTest.kt index d664e33f..f45eb3c5 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerBalanceTransactionCreateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerBalanceTransactionCreateParamsTest.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -44,7 +43,6 @@ internal class CustomerBalanceTransactionCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.amount()).isEqualTo("amount") assertThat(body.type()).isEqualTo(CustomerBalanceTransactionCreateParams.Type.INCREMENT) assertThat(body.description()).contains("description") @@ -61,7 +59,6 @@ internal class CustomerBalanceTransactionCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.amount()).isEqualTo("amount") assertThat(body.type()).isEqualTo(CustomerBalanceTransactionCreateParams.Type.INCREMENT) } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreateParamsTest.kt index ee3c41ec..c6886211 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreateParamsTest.kt @@ -4,7 +4,6 @@ package com.withorb.api.models import com.withorb.api.core.JsonValue import kotlin.jvm.optionals.getOrNull -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -171,7 +170,6 @@ internal class CustomerCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.email()).isEqualTo("dev@stainless.com") assertThat(body.name()).isEqualTo("x") assertThat(body.accountingSyncConfiguration()) @@ -262,7 +260,6 @@ internal class CustomerCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.email()).isEqualTo("dev@stainless.com") assertThat(body.name()).isEqualTo("x") } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateByExternalIdParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateByExternalIdParamsTest.kt index 9be4f20d..4a553fed 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateByExternalIdParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateByExternalIdParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import java.time.OffsetDateTime -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -77,7 +76,6 @@ internal class CustomerCreditTopUpCreateByExternalIdParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.amount()).isEqualTo("amount") assertThat(body.currency()).isEqualTo("currency") assertThat(body.invoiceSettings()) @@ -116,7 +114,6 @@ internal class CustomerCreditTopUpCreateByExternalIdParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.amount()).isEqualTo("amount") assertThat(body.currency()).isEqualTo("currency") assertThat(body.invoiceSettings()) diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateParamsTest.kt index 08f22f63..e7689cf5 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import java.time.OffsetDateTime -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -77,7 +76,6 @@ internal class CustomerCreditTopUpCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.amount()).isEqualTo("amount") assertThat(body.currency()).isEqualTo("currency") assertThat(body.invoiceSettings()) @@ -116,7 +114,6 @@ internal class CustomerCreditTopUpCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.amount()).isEqualTo("amount") assertThat(body.currency()).isEqualTo("currency") assertThat(body.invoiceSettings()) diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerUpdateByExternalIdParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerUpdateByExternalIdParamsTest.kt index 8b7941a5..d94ab291 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerUpdateByExternalIdParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerUpdateByExternalIdParamsTest.kt @@ -4,7 +4,6 @@ package com.withorb.api.models import com.withorb.api.core.JsonValue import kotlin.jvm.optionals.getOrNull -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -190,7 +189,6 @@ internal class CustomerUpdateByExternalIdParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.accountingSyncConfiguration()) .contains( CustomerUpdateByExternalIdParams.AccountingSyncConfiguration.builder() @@ -287,7 +285,5 @@ internal class CustomerUpdateByExternalIdParamsTest { val params = CustomerUpdateByExternalIdParams.builder().id("external_customer_id").build() val body = params._body() - - assertNotNull(body) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerUpdateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerUpdateParamsTest.kt index 539781e4..ff2724f9 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerUpdateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerUpdateParamsTest.kt @@ -4,7 +4,6 @@ package com.withorb.api.models import com.withorb.api.core.JsonValue import kotlin.jvm.optionals.getOrNull -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -180,7 +179,6 @@ internal class CustomerUpdateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.accountingSyncConfiguration()) .contains( CustomerUpdateParams.AccountingSyncConfiguration.builder() @@ -269,7 +267,5 @@ internal class CustomerUpdateParamsTest { val params = CustomerUpdateParams.builder().customerId("customer_id").build() val body = params._body() - - assertNotNull(body) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/DimensionalPriceGroupCreateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/DimensionalPriceGroupCreateParamsTest.kt index 4a5a88ee..d8964f13 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/DimensionalPriceGroupCreateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/DimensionalPriceGroupCreateParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import com.withorb.api.core.JsonValue -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -43,7 +42,6 @@ internal class DimensionalPriceGroupCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.billableMetricId()).isEqualTo("billable_metric_id") assertThat(body.dimensions()).containsExactly("region", "instance_type") assertThat(body.name()).isEqualTo("name") @@ -69,7 +67,6 @@ internal class DimensionalPriceGroupCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.billableMetricId()).isEqualTo("billable_metric_id") assertThat(body.dimensions()).containsExactly("region", "instance_type") assertThat(body.name()).isEqualTo("name") diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/EventBackfillCreateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/EventBackfillCreateParamsTest.kt index 29049413..c9eb4009 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/EventBackfillCreateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/EventBackfillCreateParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import java.time.OffsetDateTime -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -37,7 +36,6 @@ internal class EventBackfillCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.timeframeEnd()).isEqualTo(OffsetDateTime.parse("2019-12-27T18:11:19.117Z")) assertThat(body.timeframeStart()) .isEqualTo(OffsetDateTime.parse("2019-12-27T18:11:19.117Z")) @@ -59,7 +57,6 @@ internal class EventBackfillCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.timeframeEnd()).isEqualTo(OffsetDateTime.parse("2019-12-27T18:11:19.117Z")) assertThat(body.timeframeStart()) .isEqualTo(OffsetDateTime.parse("2019-12-27T18:11:19.117Z")) diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/EventIngestParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/EventIngestParamsTest.kt index 13811d81..ed289fa4 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/EventIngestParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/EventIngestParamsTest.kt @@ -5,7 +5,6 @@ package com.withorb.api.models import com.withorb.api.core.JsonValue import com.withorb.api.core.http.QueryParams import java.time.OffsetDateTime -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -94,7 +93,6 @@ internal class EventIngestParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.events()) .containsExactly( EventIngestParams.Event.builder() @@ -124,7 +122,6 @@ internal class EventIngestParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.events()) .containsExactly( EventIngestParams.Event.builder() diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/EventSearchParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/EventSearchParamsTest.kt index 3b1bec6c..88b828b4 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/EventSearchParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/EventSearchParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import java.time.OffsetDateTime -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -29,7 +28,6 @@ internal class EventSearchParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.eventIds()).containsExactly("string") assertThat(body.timeframeEnd()).contains(OffsetDateTime.parse("2019-12-27T18:11:19.117Z")) assertThat(body.timeframeStart()).contains(OffsetDateTime.parse("2019-12-27T18:11:19.117Z")) @@ -41,7 +39,6 @@ internal class EventSearchParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.eventIds()).containsExactly("string") } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/EventUpdateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/EventUpdateParamsTest.kt index 228f2443..9b834a4d 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/EventUpdateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/EventUpdateParamsTest.kt @@ -4,7 +4,6 @@ package com.withorb.api.models import com.withorb.api.core.JsonValue import java.time.OffsetDateTime -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -51,7 +50,6 @@ internal class EventUpdateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.eventName()).isEqualTo("event_name") assertThat(body._properties()).isEqualTo(JsonValue.from(mapOf())) assertThat(body.timestamp()).isEqualTo(OffsetDateTime.parse("2020-12-09T16:09:53Z")) @@ -71,7 +69,6 @@ internal class EventUpdateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.eventName()).isEqualTo("event_name") assertThat(body._properties()).isEqualTo(JsonValue.from(mapOf())) assertThat(body.timestamp()).isEqualTo(OffsetDateTime.parse("2020-12-09T16:09:53Z")) diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceCreateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceCreateParamsTest.kt index 743c0072..3770dccf 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceCreateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceCreateParamsTest.kt @@ -5,7 +5,6 @@ package com.withorb.api.models import com.withorb.api.core.JsonValue import java.time.LocalDate import java.time.OffsetDateTime -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -97,7 +96,6 @@ internal class InvoiceCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.currency()).isEqualTo("USD") assertThat(body.invoiceDate()).isEqualTo(OffsetDateTime.parse("2019-12-27T18:11:19.117Z")) assertThat(body.lineItems()) @@ -167,7 +165,6 @@ internal class InvoiceCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.currency()).isEqualTo("USD") assertThat(body.invoiceDate()).isEqualTo(OffsetDateTime.parse("2019-12-27T18:11:19.117Z")) assertThat(body.lineItems()) diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceIssueParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceIssueParamsTest.kt index 82c78b6e..0c7016a6 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceIssueParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceIssueParamsTest.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -28,7 +27,6 @@ internal class InvoiceIssueParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.synchronous()).contains(true) } @@ -37,7 +35,5 @@ internal class InvoiceIssueParamsTest { val params = InvoiceIssueParams.builder().invoiceId("invoice_id").build() val body = params._body() - - assertNotNull(body) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceLineItemCreateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceLineItemCreateParamsTest.kt index 39eaf8a7..4854317e 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceLineItemCreateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceLineItemCreateParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import java.time.LocalDate -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -35,7 +34,6 @@ internal class InvoiceLineItemCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.amount()).isEqualTo("12.00") assertThat(body.endDate()).isEqualTo(LocalDate.parse("2023-09-22")) assertThat(body.invoiceId()).isEqualTo("4khy3nwzktxv7") diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceMarkPaidParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceMarkPaidParamsTest.kt index 42ba1fc5..e2d7ca17 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceMarkPaidParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceMarkPaidParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import java.time.LocalDate -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -44,7 +43,6 @@ internal class InvoiceMarkPaidParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.paymentReceivedDate()).isEqualTo(LocalDate.parse("2023-09-22")) assertThat(body.externalId()).contains("external_payment_id_123") assertThat(body.notes()).contains("notes") @@ -60,7 +58,6 @@ internal class InvoiceMarkPaidParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.paymentReceivedDate()).isEqualTo(LocalDate.parse("2023-09-22")) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceUpdateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceUpdateParamsTest.kt index 49859fba..2392b240 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceUpdateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceUpdateParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import com.withorb.api.core.JsonValue -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -44,7 +43,6 @@ internal class InvoiceUpdateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.metadata()) .contains( InvoiceUpdateParams.Metadata.builder() @@ -58,7 +56,5 @@ internal class InvoiceUpdateParamsTest { val params = InvoiceUpdateParams.builder().invoiceId("invoice_id").build() val body = params._body() - - assertNotNull(body) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/ItemCreateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/ItemCreateParamsTest.kt index 63e15c54..7e00097a 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/ItemCreateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/ItemCreateParamsTest.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -19,7 +18,6 @@ internal class ItemCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.name()).isEqualTo("API requests") } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/ItemUpdateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/ItemUpdateParamsTest.kt index f3eacf4b..83968b9f 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/ItemUpdateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/ItemUpdateParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import kotlin.jvm.optionals.getOrNull -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -52,7 +51,6 @@ internal class ItemUpdateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.externalConnections().getOrNull()) .containsExactly( ItemUpdateParams.ExternalConnection.builder() @@ -70,7 +68,5 @@ internal class ItemUpdateParamsTest { val params = ItemUpdateParams.builder().itemId("item_id").build() val body = params._body() - - assertNotNull(body) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/MetricCreateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/MetricCreateParamsTest.kt index 6da21313..a62e4e65 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/MetricCreateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/MetricCreateParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import com.withorb.api.core.JsonValue -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -41,7 +40,6 @@ internal class MetricCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.description()).contains("Sum of bytes downloaded in fast mode") assertThat(body.itemId()).isEqualTo("item_id") assertThat(body.name()).isEqualTo("Bytes downloaded") @@ -67,7 +65,6 @@ internal class MetricCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.description()).contains("Sum of bytes downloaded in fast mode") assertThat(body.itemId()).isEqualTo("item_id") assertThat(body.name()).isEqualTo("Bytes downloaded") diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/MetricUpdateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/MetricUpdateParamsTest.kt index 7ae2b6c6..78ea816d 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/MetricUpdateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/MetricUpdateParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import com.withorb.api.core.JsonValue -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -44,7 +43,6 @@ internal class MetricUpdateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.metadata()) .contains( MetricUpdateParams.Metadata.builder() @@ -58,7 +56,5 @@ internal class MetricUpdateParamsTest { val params = MetricUpdateParams.builder().metricId("metric_id").build() val body = params._body() - - assertNotNull(body) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/PlanCreateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/PlanCreateParamsTest.kt index 04fe0f39..e6aa9769 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/PlanCreateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/PlanCreateParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import com.withorb.api.core.JsonValue -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -140,7 +139,6 @@ internal class PlanCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.currency()).isEqualTo("currency") assertThat(body.name()).isEqualTo("name") assertThat(body.prices()) @@ -230,7 +228,6 @@ internal class PlanCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.currency()).isEqualTo("currency") assertThat(body.name()).isEqualTo("name") assertThat(body.prices()) diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/PlanExternalPlanIdUpdateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/PlanExternalPlanIdUpdateParamsTest.kt index d0c4adfb..9318a365 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/PlanExternalPlanIdUpdateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/PlanExternalPlanIdUpdateParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import com.withorb.api.core.JsonValue -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -47,7 +46,6 @@ internal class PlanExternalPlanIdUpdateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.externalPlanId()).contains("external_plan_id") assertThat(body.metadata()) .contains( @@ -63,7 +61,5 @@ internal class PlanExternalPlanIdUpdateParamsTest { PlanExternalPlanIdUpdateParams.builder().otherExternalPlanId("external_plan_id").build() val body = params._body() - - assertNotNull(body) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/PlanUpdateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/PlanUpdateParamsTest.kt index 7a7a3f0a..25282ce2 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/PlanUpdateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/PlanUpdateParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import com.withorb.api.core.JsonValue -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -46,7 +45,6 @@ internal class PlanUpdateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.externalPlanId()).contains("external_plan_id") assertThat(body.metadata()) .contains( @@ -61,7 +59,5 @@ internal class PlanUpdateParamsTest { val params = PlanUpdateParams.builder().planId("plan_id").build() val body = params._body() - - assertNotNull(body) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/PriceEvaluateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/PriceEvaluateParamsTest.kt index 83217ec2..c017f585 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/PriceEvaluateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/PriceEvaluateParamsTest.kt @@ -4,7 +4,6 @@ package com.withorb.api.models import java.time.OffsetDateTime import kotlin.jvm.optionals.getOrNull -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -52,7 +51,6 @@ internal class PriceEvaluateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.timeframeEnd()).isEqualTo(OffsetDateTime.parse("2019-12-27T18:11:19.117Z")) assertThat(body.timeframeStart()) .isEqualTo(OffsetDateTime.parse("2019-12-27T18:11:19.117Z")) @@ -75,7 +73,6 @@ internal class PriceEvaluateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.timeframeEnd()).isEqualTo(OffsetDateTime.parse("2019-12-27T18:11:19.117Z")) assertThat(body.timeframeStart()) .isEqualTo(OffsetDateTime.parse("2019-12-27T18:11:19.117Z")) diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/PriceExternalPriceIdUpdateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/PriceExternalPriceIdUpdateParamsTest.kt index cdc9c68c..2ab417d1 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/PriceExternalPriceIdUpdateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/PriceExternalPriceIdUpdateParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import com.withorb.api.core.JsonValue -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -45,7 +44,6 @@ internal class PriceExternalPriceIdUpdateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.metadata()) .contains( PriceExternalPriceIdUpdateParams.Metadata.builder() @@ -60,7 +58,5 @@ internal class PriceExternalPriceIdUpdateParamsTest { PriceExternalPriceIdUpdateParams.builder().externalPriceId("external_price_id").build() val body = params._body() - - assertNotNull(body) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/PriceUpdateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/PriceUpdateParamsTest.kt index 60f0ae59..75e290a4 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/PriceUpdateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/PriceUpdateParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import com.withorb.api.core.JsonValue -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -44,7 +43,6 @@ internal class PriceUpdateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.metadata()) .contains( PriceUpdateParams.Metadata.builder() @@ -58,7 +56,5 @@ internal class PriceUpdateParamsTest { val params = PriceUpdateParams.builder().priceId("price_id").build() val body = params._body() - - assertNotNull(body) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionCancelParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionCancelParamsTest.kt index f98bb44e..7f337920 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionCancelParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionCancelParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import java.time.OffsetDateTime -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -44,7 +43,6 @@ internal class SubscriptionCancelParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.cancelOption()) .isEqualTo(SubscriptionCancelParams.CancelOption.END_OF_SUBSCRIPTION_TERM) assertThat(body.allowInvoiceCreditOrVoid()).contains(true) @@ -62,7 +60,6 @@ internal class SubscriptionCancelParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.cancelOption()) .isEqualTo(SubscriptionCancelParams.CancelOption.END_OF_SUBSCRIPTION_TERM) } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionCreateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionCreateParamsTest.kt index b5479eff..d66f5cbe 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionCreateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionCreateParamsTest.kt @@ -5,7 +5,6 @@ package com.withorb.api.models import com.withorb.api.core.JsonValue import java.time.OffsetDateTime import kotlin.jvm.optionals.getOrNull -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -603,7 +602,6 @@ internal class SubscriptionCreateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.addAdjustments().getOrNull()) .containsExactly( SubscriptionCreateParams.AddAdjustment.builder() @@ -906,7 +904,5 @@ internal class SubscriptionCreateParamsTest { val params = SubscriptionCreateParams.builder().build() val body = params._body() - - assertNotNull(body) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsParamsTest.kt index ccebb75b..15463de5 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsParamsTest.kt @@ -5,7 +5,6 @@ package com.withorb.api.models import com.withorb.api.core.JsonValue import java.time.OffsetDateTime import kotlin.jvm.optionals.getOrNull -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -322,7 +321,6 @@ internal class SubscriptionPriceIntervalsParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.add().getOrNull()) .containsExactly( SubscriptionPriceIntervalsParams.Add.builder() @@ -476,7 +474,5 @@ internal class SubscriptionPriceIntervalsParamsTest { SubscriptionPriceIntervalsParams.builder().subscriptionId("subscription_id").build() val body = params._body() - - assertNotNull(body) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeParamsTest.kt index 689cbe26..77e95a0a 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeParamsTest.kt @@ -5,7 +5,6 @@ package com.withorb.api.models import com.withorb.api.core.JsonValue import java.time.OffsetDateTime import kotlin.jvm.optionals.getOrNull -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -641,7 +640,6 @@ internal class SubscriptionSchedulePlanChangeParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.changeOption()) .isEqualTo(SubscriptionSchedulePlanChangeParams.ChangeOption.REQUESTED_DATE) assertThat(body.addAdjustments().getOrNull()) @@ -960,7 +958,6 @@ internal class SubscriptionSchedulePlanChangeParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.changeOption()) .isEqualTo(SubscriptionSchedulePlanChangeParams.ChangeOption.REQUESTED_DATE) } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionTriggerPhaseParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionTriggerPhaseParamsTest.kt index a3fdccf8..e6e05f69 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionTriggerPhaseParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionTriggerPhaseParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import java.time.LocalDate -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -39,7 +38,6 @@ internal class SubscriptionTriggerPhaseParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.allowInvoiceCreditOrVoid()).contains(true) assertThat(body.effectiveDate()).contains(LocalDate.parse("2019-12-27")) } @@ -50,7 +48,5 @@ internal class SubscriptionTriggerPhaseParamsTest { SubscriptionTriggerPhaseParams.builder().subscriptionId("subscription_id").build() val body = params._body() - - assertNotNull(body) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionUnscheduleFixedFeeQuantityUpdatesParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionUnscheduleFixedFeeQuantityUpdatesParamsTest.kt index ee6d8aca..4f155dc8 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionUnscheduleFixedFeeQuantityUpdatesParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionUnscheduleFixedFeeQuantityUpdatesParamsTest.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -39,7 +38,6 @@ internal class SubscriptionUnscheduleFixedFeeQuantityUpdatesParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.priceId()).isEqualTo("price_id") } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionUpdateFixedFeeQuantityParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionUpdateFixedFeeQuantityParamsTest.kt index d41f20e0..98e1fcf8 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionUpdateFixedFeeQuantityParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionUpdateFixedFeeQuantityParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import java.time.LocalDate -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -49,7 +48,6 @@ internal class SubscriptionUpdateFixedFeeQuantityParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.priceId()).isEqualTo("price_id") assertThat(body.quantity()).isEqualTo(0.0) assertThat(body.allowInvoiceCreditOrVoid()).contains(true) @@ -69,7 +67,6 @@ internal class SubscriptionUpdateFixedFeeQuantityParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.priceId()).isEqualTo("price_id") assertThat(body.quantity()).isEqualTo(0.0) } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionUpdateParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionUpdateParamsTest.kt index 1e1c1bd7..1455c2a0 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionUpdateParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionUpdateParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import com.withorb.api.core.JsonValue -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -52,7 +51,6 @@ internal class SubscriptionUpdateParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.autoCollection()).contains(true) assertThat(body.defaultInvoiceMemo()).contains("default_invoice_memo") assertThat(body.invoicingThreshold()).contains("10.00") @@ -70,7 +68,5 @@ internal class SubscriptionUpdateParamsTest { val params = SubscriptionUpdateParams.builder().subscriptionId("subscription_id").build() val body = params._body() - - assertNotNull(body) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionUpdateTrialParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionUpdateTrialParamsTest.kt index b998d160..936edd1b 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionUpdateTrialParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionUpdateTrialParamsTest.kt @@ -3,7 +3,6 @@ package com.withorb.api.models import java.time.OffsetDateTime -import kotlin.test.assertNotNull import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -42,7 +41,6 @@ internal class SubscriptionUpdateTrialParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.trialEndDate()) .isEqualTo( SubscriptionUpdateTrialParams.TrialEndDate.ofOffsetDateTime( @@ -62,7 +60,6 @@ internal class SubscriptionUpdateTrialParamsTest { val body = params._body() - assertNotNull(body) assertThat(body.trialEndDate()) .isEqualTo( SubscriptionUpdateTrialParams.TrialEndDate.ofOffsetDateTime( From 99e8b5b46b1cba17b06d5fa92fcf8e084d64f6b3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 21 Mar 2025 15:40:31 +0000 Subject: [PATCH 2/9] chore(internal): fix example formatting (#364) --- orb-java-example/build.gradle.kts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/orb-java-example/build.gradle.kts b/orb-java-example/build.gradle.kts index a413f3ae..fae83464 100644 --- a/orb-java-example/build.gradle.kts +++ b/orb-java-example/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("java") + id("orb.java") application } @@ -11,10 +11,9 @@ dependencies { implementation(project(":orb-java")) } -java { +tasks.withType().configureEach { // Allow using more modern APIs, like `List.of` and `Map.of`, in examples. - sourceCompatibility = JavaVersion.VERSION_1_9 - targetCompatibility = JavaVersion.VERSION_1_9 + options.release.set(9) } application { From 3a0fe1e9bf719ef3606c30ff48ba6a7dd06f7911 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 21 Mar 2025 17:07:18 +0000 Subject: [PATCH 3/9] chore(internal): remove unnecessary import (#365) --- .../src/main/kotlin/com/withorb/api/core/http/HttpResponse.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/core/http/HttpResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/core/http/HttpResponse.kt index 36480e16..1ab0ed96 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/core/http/HttpResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/core/http/HttpResponse.kt @@ -1,7 +1,8 @@ +// File generated from our OpenAPI spec by Stainless. + package com.withorb.api.core.http import java.io.InputStream -import java.lang.AutoCloseable interface HttpResponse : AutoCloseable { From 9443b239a271eb97bf16f5d8cd432f6c97db2aa4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 21 Mar 2025 21:18:45 +0000 Subject: [PATCH 4/9] docs: update readme exception docs (#366) --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 7abd226f..2ad8b3cb 100644 --- a/README.md +++ b/README.md @@ -195,16 +195,16 @@ The SDK throws custom unchecked exception types: - [`OrbServiceException`](orb-java-core/src/main/kotlin/com/withorb/api/errors/OrbServiceException.kt): Base class for HTTP errors. See this table for which exception subclass is thrown for each HTTP status code: - | Status | Exception | - | ------ | ------------------------------- | - | 400 | `BadRequestException` | - | 401 | `AuthenticationException` | - | 403 | `PermissionDeniedException` | - | 404 | `NotFoundException` | - | 422 | `UnprocessableEntityException` | - | 429 | `RateLimitException` | - | 5xx | `InternalServerException` | - | others | `UnexpectedStatusCodeException` | + | Status | Exception | + | ------ | ------------------------------------------------------------------------------------------------------------------------ | + | 400 | [`BadRequestException`](orb-java-core/src/main/kotlin/com/withorb/api/errors/BadRequestException.kt) | + | 401 | [`UnauthorizedException`](orb-java-core/src/main/kotlin/com/withorb/api/errors/UnauthorizedException.kt) | + | 403 | [`PermissionDeniedException`](orb-java-core/src/main/kotlin/com/withorb/api/errors/PermissionDeniedException.kt) | + | 404 | [`NotFoundException`](orb-java-core/src/main/kotlin/com/withorb/api/errors/NotFoundException.kt) | + | 422 | [`UnprocessableEntityException`](orb-java-core/src/main/kotlin/com/withorb/api/errors/UnprocessableEntityException.kt) | + | 429 | [`RateLimitException`](orb-java-core/src/main/kotlin/com/withorb/api/errors/RateLimitException.kt) | + | 5xx | [`InternalServerException`](orb-java-core/src/main/kotlin/com/withorb/api/errors/InternalServerException.kt) | + | others | [`UnexpectedStatusCodeException`](orb-java-core/src/main/kotlin/com/withorb/api/errors/UnexpectedStatusCodeException.kt) | - [`OrbIoException`](orb-java-core/src/main/kotlin/com/withorb/api/errors/OrbIoException.kt): I/O networking errors. From bc3f6c3c810124041192a841b531039b27cfb840 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 21 Mar 2025 21:35:35 +0000 Subject: [PATCH 5/9] docs: minor readme tweak (#367) --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2ad8b3cb..89cb2ae7 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ -The Orb Java SDK provides convenient access to the Orb REST API from applications written in Java. +The Orb Java SDK provides convenient access to the [Orb REST API](https://docs.withorb.com/reference/api-reference) from applications written in Java. The Orb Java SDK is similar to the Orb Kotlin SDK but with minor differences that make it more ergonomic for use in Java, such as `Optional` instead of nullable values, `Stream` instead of `Sequence`, and `CompletableFuture` instead of suspend functions. @@ -26,9 +26,9 @@ implementation("com.withorb.api:orb-java:0.51.0") ```xml - com.withorb.api - orb-java - 0.51.0 + com.withorb.api + orb-java + 0.51.0 ``` From 659e62bfba72b4fbf261db18cbcc4ced30f7953d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 25 Mar 2025 05:44:09 +0000 Subject: [PATCH 6/9] feat(client): support a lower jackson version (#368) feat(client): throw on incompatible jackson version --- .../api/client/okhttp/OrbOkHttpClient.kt | 11 + .../api/client/okhttp/OrbOkHttpClientAsync.kt | 11 + orb-java-core/build.gradle.kts | 13 + .../main/kotlin/com/withorb/api/core/Check.kt | 46 + .../com/withorb/api/core/ClientOptions.kt | 14 + .../com/withorb/api/core/ObjectMappers.kt | 54 +- .../kotlin/com/withorb/api/core/Values.kt | 20 +- .../withorb/api/core/handlers/JsonHandler.kt | 4 +- .../withorb/api/errors/BadRequestException.kt | 4 +- .../withorb/api/errors/NotFoundException.kt | 4 +- .../api/errors/PermissionDeniedException.kt | 4 +- .../withorb/api/errors/RateLimitException.kt | 4 +- .../api/errors/UnauthorizedException.kt | 4 +- .../errors/UnprocessableEntityException.kt | 4 +- .../kotlin/com/withorb/api/models/Alert.kt | 379 +- .../models/AlertCreateForCustomerParams.kt | 536 +- .../AlertCreateForExternalCustomerParams.kt | 536 +- .../AlertCreateForSubscriptionParams.kt | 530 +- .../withorb/api/models/AlertDisableParams.kt | 59 +- .../withorb/api/models/AlertEnableParams.kt | 59 +- .../com/withorb/api/models/AlertListPage.kt | 34 +- .../withorb/api/models/AlertListPageAsync.kt | 34 +- .../com/withorb/api/models/AlertListParams.kt | 54 +- .../withorb/api/models/AlertRetrieveParams.kt | 22 +- .../withorb/api/models/AlertUpdateParams.kt | 386 +- .../com/withorb/api/models/AmountDiscount.kt | 75 +- .../com/withorb/api/models/BillableMetric.kt | 117 +- .../kotlin/com/withorb/api/models/Coupon.kt | 108 +- .../withorb/api/models/CouponArchiveParams.kt | 47 +- .../withorb/api/models/CouponCreateParams.kt | 1096 +- .../withorb/api/models/CouponFetchParams.kt | 22 +- .../com/withorb/api/models/CouponListPage.kt | 34 +- .../withorb/api/models/CouponListPageAsync.kt | 34 +- .../withorb/api/models/CouponListParams.kt | 28 +- .../api/models/CouponSubscriptionListPage.kt | 34 +- .../models/CouponSubscriptionListPageAsync.kt | 34 +- .../models/CouponSubscriptionListParams.kt | 36 +- .../com/withorb/api/models/CreditNote.kt | 800 +- .../api/models/CreditNoteCreateParams.kt | 521 +- .../api/models/CreditNoteFetchParams.kt | 22 +- .../withorb/api/models/CreditNoteListPage.kt | 34 +- .../api/models/CreditNoteListPageAsync.kt | 34 +- .../api/models/CreditNoteListParams.kt | 48 +- .../kotlin/com/withorb/api/models/Customer.kt | 824 +- .../CustomerBalanceTransactionCreateParams.kt | 449 +- ...ustomerBalanceTransactionCreateResponse.kt | 218 +- .../CustomerBalanceTransactionListPage.kt | 37 +- ...CustomerBalanceTransactionListPageAsync.kt | 37 +- .../CustomerBalanceTransactionListParams.kt | 60 +- .../CustomerBalanceTransactionListResponse.kt | 218 +- .../CustomerCostListByExternalIdParams.kt | 48 +- .../CustomerCostListByExternalIdResponse.kt | 210 +- .../api/models/CustomerCostListParams.kt | 48 +- .../api/models/CustomerCostListResponse.kt | 210 +- .../api/models/CustomerCreateParams.kt | 2685 +- ...editLedgerCreateEntryByExternalIdParams.kt | 1529 +- ...itLedgerCreateEntryByExternalIdResponse.kt | 2345 +- .../CustomerCreditLedgerCreateEntryParams.kt | 1505 +- ...CustomerCreditLedgerCreateEntryResponse.kt | 2345 +- ...ustomerCreditLedgerListByExternalIdPage.kt | 37 +- ...erCreditLedgerListByExternalIdPageAsync.kt | 37 +- ...tomerCreditLedgerListByExternalIdParams.kt | 68 +- ...merCreditLedgerListByExternalIdResponse.kt | 2345 +- .../models/CustomerCreditLedgerListPage.kt | 36 +- .../CustomerCreditLedgerListPageAsync.kt | 36 +- .../models/CustomerCreditLedgerListParams.kt | 68 +- .../CustomerCreditLedgerListResponse.kt | 2345 +- .../CustomerCreditListByExternalIdPage.kt | 37 +- ...CustomerCreditListByExternalIdPageAsync.kt | 37 +- .../CustomerCreditListByExternalIdParams.kt | 40 +- .../CustomerCreditListByExternalIdResponse.kt | 106 +- .../api/models/CustomerCreditListPage.kt | 36 +- .../api/models/CustomerCreditListPageAsync.kt | 36 +- .../api/models/CustomerCreditListParams.kt | 40 +- .../api/models/CustomerCreditListResponse.kt | 106 +- ...omerCreditTopUpCreateByExternalIdParams.kt | 1277 +- ...erCreditTopUpCreateByExternalIdResponse.kt | 185 +- .../models/CustomerCreditTopUpCreateParams.kt | 1269 +- .../CustomerCreditTopUpCreateResponse.kt | 185 +- ...omerCreditTopUpDeleteByExternalIdParams.kt | 49 +- .../models/CustomerCreditTopUpDeleteParams.kt | 49 +- ...CustomerCreditTopUpListByExternalIdPage.kt | 37 +- ...merCreditTopUpListByExternalIdPageAsync.kt | 37 +- ...stomerCreditTopUpListByExternalIdParams.kt | 36 +- ...omerCreditTopUpListByExternalIdResponse.kt | 185 +- .../api/models/CustomerCreditTopUpListPage.kt | 36 +- .../CustomerCreditTopUpListPageAsync.kt | 36 +- .../models/CustomerCreditTopUpListParams.kt | 36 +- .../models/CustomerCreditTopUpListResponse.kt | 185 +- .../api/models/CustomerDeleteParams.kt | 47 +- .../models/CustomerFetchByExternalIdParams.kt | 22 +- .../withorb/api/models/CustomerFetchParams.kt | 22 +- .../withorb/api/models/CustomerListPage.kt | 34 +- .../api/models/CustomerListPageAsync.kt | 34 +- .../withorb/api/models/CustomerListParams.kt | 48 +- ...dsFromGatewayByExternalCustomerIdParams.kt | 47 +- ...omerSyncPaymentMethodsFromGatewayParams.kt | 47 +- .../CustomerUpdateByExternalIdParams.kt | 2655 +- .../api/models/CustomerUpdateParams.kt | 2645 +- .../api/models/DimensionalPriceGroup.kt | 130 +- .../DimensionalPriceGroupCreateParams.kt | 916 +- ...alDimensionalPriceGroupIdRetrieveParams.kt | 22 +- .../models/DimensionalPriceGroupListPage.kt | 35 +- .../DimensionalPriceGroupListPageAsync.kt | 35 +- .../models/DimensionalPriceGroupListParams.kt | 24 +- .../DimensionalPriceGroupRetrieveParams.kt | 22 +- .../api/models/DimensionalPriceGroups.kt | 59 +- .../withorb/api/models/EvaluatePriceGroup.kt | 64 +- .../api/models/EventBackfillCloseParams.kt | 47 +- .../api/models/EventBackfillCloseResponse.kt | 148 +- .../api/models/EventBackfillCreateParams.kt | 1132 +- .../api/models/EventBackfillCreateResponse.kt | 148 +- .../api/models/EventBackfillFetchParams.kt | 22 +- .../api/models/EventBackfillFetchResponse.kt | 148 +- .../api/models/EventBackfillListPage.kt | 36 +- .../api/models/EventBackfillListPageAsync.kt | 36 +- .../api/models/EventBackfillListParams.kt | 24 +- .../api/models/EventBackfillListResponse.kt | 148 +- .../api/models/EventBackfillRevertParams.kt | 47 +- .../api/models/EventBackfillRevertResponse.kt | 148 +- .../api/models/EventDeprecateParams.kt | 47 +- .../api/models/EventDeprecateResponse.kt | 49 +- .../withorb/api/models/EventIngestParams.kt | 427 +- .../withorb/api/models/EventIngestResponse.kt | 169 +- .../withorb/api/models/EventSearchParams.kt | 536 +- .../withorb/api/models/EventSearchResponse.kt | 151 +- .../withorb/api/models/EventUpdateParams.kt | 805 +- .../withorb/api/models/EventUpdateResponse.kt | 49 +- .../api/models/EventVolumeListParams.kt | 38 +- .../com/withorb/api/models/EventVolumes.kt | 112 +- .../kotlin/com/withorb/api/models/Invoice.kt | 2922 +- .../withorb/api/models/InvoiceCreateParams.kt | 1626 +- .../withorb/api/models/InvoiceFetchParams.kt | 22 +- .../api/models/InvoiceFetchUpcomingParams.kt | 22 +- .../models/InvoiceFetchUpcomingResponse.kt | 2920 +- .../withorb/api/models/InvoiceIssueParams.kt | 301 +- .../api/models/InvoiceLineItemCreateParams.kt | 854 +- .../models/InvoiceLineItemCreateResponse.kt | 1501 +- .../com/withorb/api/models/InvoiceListPage.kt | 34 +- .../api/models/InvoiceListPageAsync.kt | 34 +- .../withorb/api/models/InvoiceListParams.kt | 74 +- .../api/models/InvoiceMarkPaidParams.kt | 477 +- .../withorb/api/models/InvoicePayParams.kt | 47 +- .../withorb/api/models/InvoiceUpdateParams.kt | 320 +- .../api/models/InvoiceVoidInvoiceParams.kt | 47 +- .../kotlin/com/withorb/api/models/Item.kt | 126 +- .../withorb/api/models/ItemCreateParams.kt | 287 +- .../com/withorb/api/models/ItemFetchParams.kt | 22 +- .../com/withorb/api/models/ItemListPage.kt | 34 +- .../withorb/api/models/ItemListPageAsync.kt | 34 +- .../com/withorb/api/models/ItemListParams.kt | 24 +- .../withorb/api/models/ItemUpdateParams.kt | 460 +- .../withorb/api/models/MetricCreateParams.kt | 600 +- .../withorb/api/models/MetricFetchParams.kt | 22 +- .../com/withorb/api/models/MetricListPage.kt | 34 +- .../withorb/api/models/MetricListPageAsync.kt | 34 +- .../withorb/api/models/MetricListParams.kt | 48 +- .../withorb/api/models/MetricUpdateParams.kt | 320 +- .../withorb/api/models/PaginationMetadata.kt | 58 +- .../withorb/api/models/PercentageDiscount.kt | 75 +- .../kotlin/com/withorb/api/models/Plan.kt | 1381 +- .../withorb/api/models/PlanCreateParams.kt | 11435 ++++--- .../models/PlanExternalPlanIdFetchParams.kt | 22 +- .../models/PlanExternalPlanIdUpdateParams.kt | 421 +- .../com/withorb/api/models/PlanFetchParams.kt | 22 +- .../com/withorb/api/models/PlanListPage.kt | 34 +- .../withorb/api/models/PlanListPageAsync.kt | 34 +- .../com/withorb/api/models/PlanListParams.kt | 50 +- .../withorb/api/models/PlanUpdateParams.kt | 421 +- .../kotlin/com/withorb/api/models/Price.kt | 23096 +++++++------ .../withorb/api/models/PriceCreateParams.kt | 11978 ++++--- .../withorb/api/models/PriceEvaluateParams.kt | 1015 +- .../api/models/PriceEvaluateResponse.kt | 50 +- .../models/PriceExternalPriceIdFetchParams.kt | 22 +- .../PriceExternalPriceIdUpdateParams.kt | 320 +- .../withorb/api/models/PriceFetchParams.kt | 22 +- .../com/withorb/api/models/PriceListPage.kt | 34 +- .../withorb/api/models/PriceListPageAsync.kt | 34 +- .../com/withorb/api/models/PriceListParams.kt | 24 +- .../withorb/api/models/PriceUpdateParams.kt | 320 +- .../com/withorb/api/models/Subscription.kt | 1881 +- .../api/models/SubscriptionCancelParams.kt | 561 +- .../api/models/SubscriptionCancelResponse.kt | 1881 +- .../api/models/SubscriptionCreateParams.kt | 26753 +++++++++------- .../api/models/SubscriptionCreateResponse.kt | 1881 +- .../models/SubscriptionFetchCostsParams.kt | 48 +- .../models/SubscriptionFetchCostsResponse.kt | 210 +- .../api/models/SubscriptionFetchParams.kt | 22 +- .../models/SubscriptionFetchSchedulePage.kt | 36 +- .../SubscriptionFetchSchedulePageAsync.kt | 36 +- .../models/SubscriptionFetchScheduleParams.kt | 60 +- .../SubscriptionFetchScheduleResponse.kt | 134 +- .../models/SubscriptionFetchUsageParams.kt | 60 +- .../api/models/SubscriptionListPage.kt | 34 +- .../api/models/SubscriptionListPageAsync.kt | 34 +- .../api/models/SubscriptionListParams.kt | 54 +- .../SubscriptionPriceIntervalsParams.kt | 13163 ++++---- .../SubscriptionPriceIntervalsResponse.kt | 1881 +- .../SubscriptionSchedulePlanChangeParams.kt | 26318 ++++++++------- .../SubscriptionSchedulePlanChangeResponse.kt | 1881 +- .../models/SubscriptionTriggerPhaseParams.kt | 432 +- .../SubscriptionTriggerPhaseResponse.kt | 1881 +- ...ubscriptionUnscheduleCancellationParams.kt | 47 +- ...scriptionUnscheduleCancellationResponse.kt | 1881 +- ...UnscheduleFixedFeeQuantityUpdatesParams.kt | 301 +- ...scheduleFixedFeeQuantityUpdatesResponse.kt | 1881 +- ...ptionUnschedulePendingPlanChangesParams.kt | 47 +- ...ionUnschedulePendingPlanChangesResponse.kt | 1881 +- ...ubscriptionUpdateFixedFeeQuantityParams.kt | 854 +- ...scriptionUpdateFixedFeeQuantityResponse.kt | 1881 +- .../api/models/SubscriptionUpdateParams.kt | 1009 +- .../models/SubscriptionUpdateTrialParams.kt | 428 +- .../models/SubscriptionUpdateTrialResponse.kt | 1881 +- .../withorb/api/models/SubscriptionUsage.kt | 540 +- .../com/withorb/api/models/Subscriptions.kt | 59 +- .../withorb/api/models/TopLevelPingParams.kt | 10 +- .../api/models/TopLevelPingResponse.kt | 49 +- .../com/withorb/api/models/TrialDiscount.kt | 91 +- .../com/withorb/api/models/UsageDiscount.kt | 75 +- .../withorb/api/core/http/SerializerTest.kt | 2 - 220 files changed, 110620 insertions(+), 84757 deletions(-) diff --git a/orb-java-client-okhttp/src/main/kotlin/com/withorb/api/client/okhttp/OrbOkHttpClient.kt b/orb-java-client-okhttp/src/main/kotlin/com/withorb/api/client/okhttp/OrbOkHttpClient.kt index 3d036c50..e3b5ce1e 100644 --- a/orb-java-client-okhttp/src/main/kotlin/com/withorb/api/client/okhttp/OrbOkHttpClient.kt +++ b/orb-java-client-okhttp/src/main/kotlin/com/withorb/api/client/okhttp/OrbOkHttpClient.kt @@ -38,6 +38,17 @@ class OrbOkHttpClient private constructor() { this.baseUrl = baseUrl } + /** + * Whether to throw an exception if any of the Jackson versions detected at runtime are + * incompatible with the SDK's minimum supported Jackson version (2.13.4). + * + * Defaults to true. Use extreme caution when disabling this option. There is no guarantee + * that the SDK will work correctly when using an incompatible Jackson version. + */ + fun checkJacksonVersionCompatibility(checkJacksonVersionCompatibility: Boolean) = apply { + clientOptions.checkJacksonVersionCompatibility(checkJacksonVersionCompatibility) + } + fun jsonMapper(jsonMapper: JsonMapper) = apply { clientOptions.jsonMapper(jsonMapper) } fun clock(clock: Clock) = apply { clientOptions.clock(clock) } diff --git a/orb-java-client-okhttp/src/main/kotlin/com/withorb/api/client/okhttp/OrbOkHttpClientAsync.kt b/orb-java-client-okhttp/src/main/kotlin/com/withorb/api/client/okhttp/OrbOkHttpClientAsync.kt index e7a9f330..ef9cbe65 100644 --- a/orb-java-client-okhttp/src/main/kotlin/com/withorb/api/client/okhttp/OrbOkHttpClientAsync.kt +++ b/orb-java-client-okhttp/src/main/kotlin/com/withorb/api/client/okhttp/OrbOkHttpClientAsync.kt @@ -38,6 +38,17 @@ class OrbOkHttpClientAsync private constructor() { this.baseUrl = baseUrl } + /** + * Whether to throw an exception if any of the Jackson versions detected at runtime are + * incompatible with the SDK's minimum supported Jackson version (2.13.4). + * + * Defaults to true. Use extreme caution when disabling this option. There is no guarantee + * that the SDK will work correctly when using an incompatible Jackson version. + */ + fun checkJacksonVersionCompatibility(checkJacksonVersionCompatibility: Boolean) = apply { + clientOptions.checkJacksonVersionCompatibility(checkJacksonVersionCompatibility) + } + fun jsonMapper(jsonMapper: JsonMapper) = apply { clientOptions.jsonMapper(jsonMapper) } fun clock(clock: Clock) = apply { clientOptions.clock(clock) } diff --git a/orb-java-core/build.gradle.kts b/orb-java-core/build.gradle.kts index b53bd811..a0bbeafb 100644 --- a/orb-java-core/build.gradle.kts +++ b/orb-java-core/build.gradle.kts @@ -3,6 +3,19 @@ plugins { id("orb.publish") } +configurations.all { + resolutionStrategy { + // Compile and test against a lower Jackson version to ensure we're compatible with it. + // We publish with a higher version (see below) to ensure users depend on a secure version by default. + force("com.fasterxml.jackson.core:jackson-core:2.13.4") + force("com.fasterxml.jackson.core:jackson-databind:2.13.4") + force("com.fasterxml.jackson.core:jackson-annotations:2.13.4") + force("com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.4") + force("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.4") + force("com.fasterxml.jackson.module:jackson-module-kotlin:2.13.4") + } +} + dependencies { api("com.fasterxml.jackson.core:jackson-core:2.18.1") api("com.fasterxml.jackson.core:jackson-databind:2.18.1") diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/core/Check.kt b/orb-java-core/src/main/kotlin/com/withorb/api/core/Check.kt index 4a68492f..82fe7ba1 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/core/Check.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/core/Check.kt @@ -2,6 +2,9 @@ package com.withorb.api.core +import com.fasterxml.jackson.core.Version +import com.fasterxml.jackson.core.util.VersionUtil + fun checkRequired(name: String, value: T?): T = checkNotNull(value) { "`$name` is required, but was not set" } @@ -39,3 +42,46 @@ internal fun checkMaxLength(name: String, value: String, maxLength: Int): String "`$name` must have at most length $maxLength, but was ${it.length}" } } + +@JvmSynthetic +internal fun checkJacksonVersionCompatibility() { + val incompatibleJacksonVersions = + RUNTIME_JACKSON_VERSIONS.mapNotNull { + when { + it.majorVersion != MINIMUM_JACKSON_VERSION.majorVersion -> + it to "incompatible major version" + it.minorVersion < MINIMUM_JACKSON_VERSION.minorVersion -> + it to "minor version too low" + it.minorVersion == MINIMUM_JACKSON_VERSION.minorVersion && + it.patchLevel < MINIMUM_JACKSON_VERSION.patchLevel -> + it to "patch version too low" + else -> null + } + } + check(incompatibleJacksonVersions.isEmpty()) { + """ +This SDK depends on Jackson version $MINIMUM_JACKSON_VERSION, but the following incompatible Jackson versions were detected at runtime: + +${incompatibleJacksonVersions.asSequence().map { (version, incompatibilityReason) -> + "- `${version.toFullString().replace("/", ":")}` ($incompatibilityReason)" +}.joinToString("\n")} + +This can happen if you are either: +1. Directly depending on different Jackson versions +2. Depending on some library that depends on different Jackson versions, potentially transitively + +Double-check that you are depending on compatible Jackson versions. + """ + .trimIndent() + } +} + +private val MINIMUM_JACKSON_VERSION: Version = VersionUtil.parseVersion("2.13.4", null, null) +private val RUNTIME_JACKSON_VERSIONS: List = + listOf( + com.fasterxml.jackson.core.json.PackageVersion.VERSION, + com.fasterxml.jackson.databind.cfg.PackageVersion.VERSION, + com.fasterxml.jackson.datatype.jdk8.PackageVersion.VERSION, + com.fasterxml.jackson.datatype.jsr310.PackageVersion.VERSION, + com.fasterxml.jackson.module.kotlin.PackageVersion.VERSION, + ) diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/core/ClientOptions.kt b/orb-java-core/src/main/kotlin/com/withorb/api/core/ClientOptions.kt index 876728e4..8fc681ad 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/core/ClientOptions.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/core/ClientOptions.kt @@ -16,6 +16,7 @@ class ClientOptions private constructor( private val originalHttpClient: HttpClient, @get:JvmName("httpClient") val httpClient: HttpClient, + @get:JvmName("checkJacksonVersionCompatibility") val checkJacksonVersionCompatibility: Boolean, @get:JvmName("jsonMapper") val jsonMapper: JsonMapper, @get:JvmName("clock") val clock: Clock, @get:JvmName("baseUrl") val baseUrl: String, @@ -28,6 +29,12 @@ private constructor( private val webhookSecret: String?, ) { + init { + if (checkJacksonVersionCompatibility) { + checkJacksonVersionCompatibility() + } + } + fun webhookSecret(): Optional = Optional.ofNullable(webhookSecret) fun toBuilder() = Builder().from(this) @@ -54,6 +61,7 @@ private constructor( class Builder internal constructor() { private var httpClient: HttpClient? = null + private var checkJacksonVersionCompatibility: Boolean = true private var jsonMapper: JsonMapper = jsonMapper() private var clock: Clock = Clock.systemUTC() private var baseUrl: String = PRODUCTION_URL @@ -68,6 +76,7 @@ private constructor( @JvmSynthetic internal fun from(clientOptions: ClientOptions) = apply { httpClient = clientOptions.originalHttpClient + checkJacksonVersionCompatibility = clientOptions.checkJacksonVersionCompatibility jsonMapper = clientOptions.jsonMapper clock = clientOptions.clock baseUrl = clientOptions.baseUrl @@ -82,6 +91,10 @@ private constructor( fun httpClient(httpClient: HttpClient) = apply { this.httpClient = httpClient } + fun checkJacksonVersionCompatibility(checkJacksonVersionCompatibility: Boolean) = apply { + this.checkJacksonVersionCompatibility = checkJacksonVersionCompatibility + } + fun jsonMapper(jsonMapper: JsonMapper) = apply { this.jsonMapper = jsonMapper } fun clock(clock: Clock) = apply { this.clock = clock } @@ -233,6 +246,7 @@ private constructor( .idempotencyHeader("Idempotency-Key") .build() ), + checkJacksonVersionCompatibility, jsonMapper, clock, baseUrl, diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/core/ObjectMappers.kt b/orb-java-core/src/main/kotlin/com/withorb/api/core/ObjectMappers.kt index 45bc6ad7..26311c69 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/core/ObjectMappers.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/core/ObjectMappers.kt @@ -5,23 +5,19 @@ package com.withorb.api.core import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.core.JsonGenerator import com.fasterxml.jackson.databind.DeserializationFeature +import com.fasterxml.jackson.databind.MapperFeature import com.fasterxml.jackson.databind.SerializationFeature import com.fasterxml.jackson.databind.SerializerProvider -import com.fasterxml.jackson.databind.cfg.CoercionAction.Fail -import com.fasterxml.jackson.databind.cfg.CoercionInputShape.Integer -import com.fasterxml.jackson.databind.exc.InvalidDefinitionException -import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException import com.fasterxml.jackson.databind.json.JsonMapper import com.fasterxml.jackson.databind.module.SimpleModule import com.fasterxml.jackson.datatype.jdk8.Jdk8Module import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule -import com.fasterxml.jackson.module.kotlin.jacksonMapperBuilder -import com.withorb.api.errors.OrbException -import com.withorb.api.errors.OrbInvalidDataException +import com.fasterxml.jackson.module.kotlin.kotlinModule import java.io.InputStream fun jsonMapper(): JsonMapper = - jacksonMapperBuilder() + JsonMapper.builder() + .addModule(kotlinModule()) .addModule(Jdk8Module()) .addModule(JavaTimeModule()) .addModule(SimpleModule().addSerializer(InputStreamJsonSerializer)) @@ -30,7 +26,12 @@ fun jsonMapper(): JsonMapper = .disable(SerializationFeature.FLUSH_AFTER_WRITE_VALUE) .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) .disable(SerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPS) - .withCoercionConfig(String::class.java) { it.setCoercion(Integer, Fail) } + .disable(MapperFeature.ALLOW_COERCION_OF_SCALARS) + .disable(MapperFeature.AUTO_DETECT_CREATORS) + .disable(MapperFeature.AUTO_DETECT_FIELDS) + .disable(MapperFeature.AUTO_DETECT_GETTERS) + .disable(MapperFeature.AUTO_DETECT_IS_GETTERS) + .disable(MapperFeature.AUTO_DETECT_SETTERS) .build() private object InputStreamJsonSerializer : BaseSerializer(InputStream::class) { @@ -47,38 +48,3 @@ private object InputStreamJsonSerializer : BaseSerializer(InputStre } } } - -@JvmSynthetic -internal fun enhanceJacksonException(fallbackMessage: String, e: Exception): Exception { - // These exceptions should only happen if our code is wrong OR if the user is using a binary - // incompatible version of `com.fasterxml.jackson.core:jackson-databind`: - // https://javadoc.io/static/com.fasterxml.jackson.core/jackson-databind/2.18.1/index.html - val isUnexpectedException = - e is UnrecognizedPropertyException || e is InvalidDefinitionException - if (!isUnexpectedException) { - return OrbInvalidDataException(fallbackMessage, e) - } - - val jacksonVersion = JsonMapper::class.java.`package`.implementationVersion - if (jacksonVersion.isNullOrEmpty() || jacksonVersion == COMPILED_JACKSON_VERSION) { - return OrbInvalidDataException(fallbackMessage, e) - } - - return OrbException( - """ - Jackson threw an unexpected exception and its runtime version ($jacksonVersion) mismatches the version the SDK was compiled with ($COMPILED_JACKSON_VERSION). - - You may be using a version of `com.fasterxml.jackson.core:jackson-databind` that's not binary compatible with the SDK. - - This can happen if you are either: - 1. Directly depending on a different Jackson version - 2. Depending on some library that depends on a different Jackson version, potentially transitively - - Double-check that you are depending on a compatible Jackson version. - """ - .trimIndent(), - e, - ) -} - -const val COMPILED_JACKSON_VERSION = "2.18.1" diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/core/Values.kt b/orb-java-core/src/main/kotlin/com/withorb/api/core/Values.kt index e4d17630..f3ff66db 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/core/Values.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/core/Values.kt @@ -1,8 +1,6 @@ package com.withorb.api.core import com.fasterxml.jackson.annotation.JacksonAnnotationsInside -import com.fasterxml.jackson.annotation.JsonAutoDetect -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.core.JsonGenerator @@ -451,19 +449,9 @@ private constructor( @JsonInclude(JsonInclude.Include.CUSTOM, valueFilter = JsonField.IsMissing::class) annotation class ExcludeMissing -@JacksonAnnotationsInside -@JsonAutoDetect( - getterVisibility = Visibility.NONE, - isGetterVisibility = Visibility.NONE, - setterVisibility = Visibility.NONE, - creatorVisibility = Visibility.NONE, - fieldVisibility = Visibility.NONE, -) -annotation class NoAutoDetect - class MultipartField private constructor( - @get:JvmName("value") val value: JsonField, + @get:com.fasterxml.jackson.annotation.JsonValue @get:JvmName("value") val value: JsonField, @get:JvmName("contentType") val contentType: String, private val filename: String?, ) { @@ -481,11 +469,7 @@ private constructor( @JvmSynthetic internal fun map(transform: (T) -> R): MultipartField = - MultipartField.builder() - .value(value.map(transform)) - .contentType(contentType) - .filename(filename) - .build() + builder().value(value.map(transform)).contentType(contentType).filename(filename).build() /** A builder for [MultipartField]. */ class Builder internal constructor() { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/core/handlers/JsonHandler.kt b/orb-java-core/src/main/kotlin/com/withorb/api/core/handlers/JsonHandler.kt index b96bd9d7..199e5bd5 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/core/handlers/JsonHandler.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/core/handlers/JsonHandler.kt @@ -4,9 +4,9 @@ package com.withorb.api.core.handlers import com.fasterxml.jackson.databind.json.JsonMapper import com.fasterxml.jackson.module.kotlin.jacksonTypeRef -import com.withorb.api.core.enhanceJacksonException import com.withorb.api.core.http.HttpResponse import com.withorb.api.core.http.HttpResponse.Handler +import com.withorb.api.errors.OrbInvalidDataException @JvmSynthetic internal inline fun jsonHandler(jsonMapper: JsonMapper): Handler = @@ -15,6 +15,6 @@ internal inline fun jsonHandler(jsonMapper: JsonMapper): Handler try { jsonMapper.readValue(response.body(), jacksonTypeRef()) } catch (e: Exception) { - throw enhanceJacksonException("Error reading response", e) + throw OrbInvalidDataException("Error reading response", e) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/errors/BadRequestException.kt b/orb-java-core/src/main/kotlin/com/withorb/api/errors/BadRequestException.kt index b9d3acfc..157ea6dd 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/errors/BadRequestException.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/errors/BadRequestException.kt @@ -12,12 +12,12 @@ class BadRequestException private constructor(private val headers: Headers, private val body: JsonValue, cause: Throwable?) : OrbServiceException("400: $body", cause) { + override fun statusCode(): Int = 400 + override fun headers(): Headers = headers override fun body(): JsonValue = body - override fun statusCode(): Int = 400 - fun toBuilder() = Builder().from(this) companion object { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/errors/NotFoundException.kt b/orb-java-core/src/main/kotlin/com/withorb/api/errors/NotFoundException.kt index 752cb1f9..f059ba10 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/errors/NotFoundException.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/errors/NotFoundException.kt @@ -12,12 +12,12 @@ class NotFoundException private constructor(private val headers: Headers, private val body: JsonValue, cause: Throwable?) : OrbServiceException("404: $body", cause) { + override fun statusCode(): Int = 404 + override fun headers(): Headers = headers override fun body(): JsonValue = body - override fun statusCode(): Int = 404 - fun toBuilder() = Builder().from(this) companion object { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/errors/PermissionDeniedException.kt b/orb-java-core/src/main/kotlin/com/withorb/api/errors/PermissionDeniedException.kt index 12dd216c..774d2ae3 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/errors/PermissionDeniedException.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/errors/PermissionDeniedException.kt @@ -12,12 +12,12 @@ class PermissionDeniedException private constructor(private val headers: Headers, private val body: JsonValue, cause: Throwable?) : OrbServiceException("403: $body", cause) { + override fun statusCode(): Int = 403 + override fun headers(): Headers = headers override fun body(): JsonValue = body - override fun statusCode(): Int = 403 - fun toBuilder() = Builder().from(this) companion object { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/errors/RateLimitException.kt b/orb-java-core/src/main/kotlin/com/withorb/api/errors/RateLimitException.kt index c354afb9..536ea6ed 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/errors/RateLimitException.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/errors/RateLimitException.kt @@ -12,12 +12,12 @@ class RateLimitException private constructor(private val headers: Headers, private val body: JsonValue, cause: Throwable?) : OrbServiceException("429: $body", cause) { + override fun statusCode(): Int = 429 + override fun headers(): Headers = headers override fun body(): JsonValue = body - override fun statusCode(): Int = 429 - fun toBuilder() = Builder().from(this) companion object { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/errors/UnauthorizedException.kt b/orb-java-core/src/main/kotlin/com/withorb/api/errors/UnauthorizedException.kt index 7148d476..6ac99c31 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/errors/UnauthorizedException.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/errors/UnauthorizedException.kt @@ -12,12 +12,12 @@ class UnauthorizedException private constructor(private val headers: Headers, private val body: JsonValue, cause: Throwable?) : OrbServiceException("401: $body", cause) { + override fun statusCode(): Int = 401 + override fun headers(): Headers = headers override fun body(): JsonValue = body - override fun statusCode(): Int = 401 - fun toBuilder() = Builder().from(this) companion object { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/errors/UnprocessableEntityException.kt b/orb-java-core/src/main/kotlin/com/withorb/api/errors/UnprocessableEntityException.kt index 5907a45b..51ad3846 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/errors/UnprocessableEntityException.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/errors/UnprocessableEntityException.kt @@ -12,12 +12,12 @@ class UnprocessableEntityException private constructor(private val headers: Headers, private val body: JsonValue, cause: Throwable?) : OrbServiceException("422: $body", cause) { + override fun statusCode(): Int = 422 + override fun headers(): Headers = headers override fun body(): JsonValue = body - override fun statusCode(): Int = 422 - fun toBuilder() = Builder().from(this) companion object { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/Alert.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/Alert.kt index 59a2cfea..981f9010 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/Alert.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/Alert.kt @@ -11,13 +11,12 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -28,37 +27,53 @@ import kotlin.jvm.optionals.getOrNull * * Alerts created through the API can be scoped to either customers or subscriptions. */ -@NoAutoDetect class Alert -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("enabled") - @ExcludeMissing - private val enabled: JsonField = JsonMissing.of(), - @JsonProperty("metric") - @ExcludeMissing - private val metric: JsonField = JsonMissing.of(), - @JsonProperty("plan") @ExcludeMissing private val plan: JsonField = JsonMissing.of(), - @JsonProperty("subscription") - @ExcludeMissing - private val subscription: JsonField = JsonMissing.of(), - @JsonProperty("thresholds") - @ExcludeMissing - private val thresholds: JsonField> = JsonMissing.of(), - @JsonProperty("type") @ExcludeMissing private val type: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val createdAt: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val enabled: JsonField, + private val metric: JsonField, + private val plan: JsonField, + private val subscription: JsonField, + private val thresholds: JsonField>, + private val type: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("currency") @ExcludeMissing currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") @ExcludeMissing customer: JsonField = JsonMissing.of(), + @JsonProperty("enabled") @ExcludeMissing enabled: JsonField = JsonMissing.of(), + @JsonProperty("metric") @ExcludeMissing metric: JsonField = JsonMissing.of(), + @JsonProperty("plan") @ExcludeMissing plan: JsonField = JsonMissing.of(), + @JsonProperty("subscription") + @ExcludeMissing + subscription: JsonField = JsonMissing.of(), + @JsonProperty("thresholds") + @ExcludeMissing + thresholds: JsonField> = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + ) : this( + id, + createdAt, + currency, + customer, + enabled, + metric, + plan, + subscription, + thresholds, + type, + mutableMapOf(), + ) + /** * Also referred to as alert_id in this documentation. * @@ -217,29 +232,15 @@ private constructor( */ @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Alert = apply { - if (validated) { - return@apply - } - - id() - createdAt() - currency() - customer().ifPresent { it.validate() } - enabled() - metric().ifPresent { it.validate() } - plan().ifPresent { it.validate() } - subscription().ifPresent { it.validate() } - thresholds().ifPresent { it.forEach { it.validate() } } - type() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -497,23 +498,46 @@ private constructor( checkRequired("subscription", subscription), checkRequired("thresholds", thresholds).map { it.toImmutable() }, checkRequired("type", type), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Alert = apply { + if (validated) { + return@apply + } + + id() + createdAt() + currency() + customer().ifPresent { it.validate() } + enabled() + metric().ifPresent { it.validate() } + plan().ifPresent { it.validate() } + subscription().ifPresent { it.validate() } + thresholds().ifPresent { it.forEach { it.validate() } } + type() + validated = true + } + /** The customer the alert applies to. */ - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -544,21 +568,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -658,10 +676,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -681,15 +711,17 @@ private constructor( } /** The metric the alert applies to. */ - @NoAutoDetect class Metric - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -703,20 +735,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -788,7 +815,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): Metric = - Metric(checkRequired("id", id), additionalProperties.toImmutable()) + Metric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -809,24 +847,27 @@ private constructor( } /** The plan the alert applies to. */ - @NoAutoDetect class Plan - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_plan_id") - @ExcludeMissing - private val externalPlanId: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_version") - @ExcludeMissing - private val planVersion: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalPlanId: JsonField, + private val name: JsonField, + private val planVersion: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_plan_id") + @ExcludeMissing + externalPlanId: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_version") + @ExcludeMissing + planVersion: JsonField = JsonMissing.of(), + ) : this(id, externalPlanId, name, planVersion, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -889,23 +930,15 @@ private constructor( @ExcludeMissing fun _planVersion(): JsonField = planVersion + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Plan = apply { - if (validated) { - return@apply - } - - id() - externalPlanId() - name() - planVersion() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1047,10 +1080,24 @@ private constructor( checkRequired("externalPlanId", externalPlanId), checkRequired("name", name), checkRequired("planVersion", planVersion), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Plan = apply { + if (validated) { + return@apply + } + + id() + externalPlanId() + name() + planVersion() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -1070,15 +1117,17 @@ private constructor( } /** The subscription the alert applies to. */ - @NoAutoDetect class Subscription - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -1092,20 +1141,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Subscription = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1177,7 +1221,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): Subscription = - Subscription(checkRequired("id", id), additionalProperties.toImmutable()) + Subscription(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Subscription = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -1198,17 +1253,17 @@ private constructor( } /** Thresholds are used to define the conditions under which an alert will be triggered. */ - @NoAutoDetect class Threshold - @JsonCreator private constructor( - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val value: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("value") @ExcludeMissing value: JsonField = JsonMissing.of() + ) : this(value, mutableMapOf()) + /** * The value at which an alert will fire. For credit balance alerts, the alert will fire at * or below this value. For usage and cost alerts, the alert will fire at or above this @@ -1226,20 +1281,15 @@ private constructor( */ @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Threshold = apply { - if (validated) { - return@apply - } - - value() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1316,7 +1366,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): Threshold = - Threshold(checkRequired("value", value), additionalProperties.toImmutable()) + Threshold(checkRequired("value", value), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Threshold = apply { + if (validated) { + return@apply + } + + value() + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForCustomerParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForCustomerParams.kt index e3d15865..ab06c22b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForCustomerParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForCustomerParams.kt @@ -11,15 +11,14 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -93,244 +92,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - fun _pathParam(index: Int): String = - when (index) { - 0 -> customerId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("type") @ExcludeMissing private val type: JsonField = JsonMissing.of(), - @JsonProperty("thresholds") - @ExcludeMissing - private val thresholds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * The case sensitive currency or custom pricing unit to use for this alert. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun currency(): String = currency.getRequired("currency") - - /** - * The type of alert to create. This must be a valid alert type. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun type(): Type = type.getRequired("type") - - /** - * The thresholds that define the values at which the alert will be triggered. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun thresholds(): Optional> = - Optional.ofNullable(thresholds.getNullable("thresholds")) - - /** - * Returns the raw JSON value of [currency]. - * - * Unlike [currency], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency - - /** - * Returns the raw JSON value of [type]. - * - * Unlike [type], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type - - /** - * Returns the raw JSON value of [thresholds]. - * - * Unlike [thresholds], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("thresholds") - @ExcludeMissing - fun _thresholds(): JsonField> = thresholds - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - currency() - type() - thresholds().ifPresent { it.forEach { it.validate() } } - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .currency() - * .type() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var currency: JsonField? = null - private var type: JsonField? = null - private var thresholds: JsonField>? = null - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - currency = body.currency - type = body.type - thresholds = body.thresholds.map { it.toMutableList() } - additionalProperties = body.additionalProperties.toMutableMap() - } - - /** The case sensitive currency or custom pricing unit to use for this alert. */ - fun currency(currency: String) = currency(JsonField.of(currency)) - - /** - * Sets [Builder.currency] to an arbitrary JSON value. - * - * You should usually call [Builder.currency] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun currency(currency: JsonField) = apply { this.currency = currency } - - /** The type of alert to create. This must be a valid alert type. */ - fun type(type: Type) = type(JsonField.of(type)) - - /** - * Sets [Builder.type] to an arbitrary JSON value. - * - * You should usually call [Builder.type] with a well-typed [Type] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun type(type: JsonField) = apply { this.type = type } - - /** The thresholds that define the values at which the alert will be triggered. */ - fun thresholds(thresholds: List?) = - thresholds(JsonField.ofNullable(thresholds)) - - /** Alias for calling [Builder.thresholds] with `thresholds.orElse(null)`. */ - fun thresholds(thresholds: Optional>) = - thresholds(thresholds.getOrNull()) - - /** - * Sets [Builder.thresholds] to an arbitrary JSON value. - * - * You should usually call [Builder.thresholds] with a well-typed `List` - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - fun thresholds(thresholds: JsonField>) = apply { - this.thresholds = thresholds.map { it.toMutableList() } - } - - /** - * Adds a single [Threshold] to [thresholds]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addThreshold(threshold: Threshold) = apply { - thresholds = - (thresholds ?: JsonField.of(mutableListOf())).also { - checkKnown("thresholds", it).add(threshold) - } - } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .currency() - * .type() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body( - checkRequired("currency", currency), - checkRequired("type", type), - (thresholds ?: JsonMissing.of()).map { it.toImmutable() }, - additionalProperties.toImmutable(), - ) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && currency == other.currency && type == other.type && thresholds == other.thresholds && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(currency, type, thresholds, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{currency=$currency, type=$type, thresholds=$thresholds, additionalProperties=$additionalProperties}" - } - fun toBuilder() = Builder().from(this) companion object { @@ -349,7 +110,6 @@ private constructor( } /** A builder for [AlertCreateForCustomerParams]. */ - @NoAutoDetect class Builder internal constructor() { private var customerId: String? = null @@ -553,6 +313,254 @@ private constructor( ) } + @JvmSynthetic internal fun _body(): Body = body + + fun _pathParam(index: Int): String = + when (index) { + 0 -> customerId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body + private constructor( + private val currency: JsonField, + private val type: JsonField, + private val thresholds: JsonField>, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + @JsonProperty("thresholds") + @ExcludeMissing + thresholds: JsonField> = JsonMissing.of(), + ) : this(currency, type, thresholds, mutableMapOf()) + + /** + * The case sensitive currency or custom pricing unit to use for this alert. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun currency(): String = currency.getRequired("currency") + + /** + * The type of alert to create. This must be a valid alert type. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun type(): Type = type.getRequired("type") + + /** + * The thresholds that define the values at which the alert will be triggered. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun thresholds(): Optional> = + Optional.ofNullable(thresholds.getNullable("thresholds")) + + /** + * Returns the raw JSON value of [currency]. + * + * Unlike [currency], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + + /** + * Returns the raw JSON value of [type]. + * + * Unlike [type], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type + + /** + * Returns the raw JSON value of [thresholds]. + * + * Unlike [thresholds], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("thresholds") + @ExcludeMissing + fun _thresholds(): JsonField> = thresholds + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .currency() + * .type() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var currency: JsonField? = null + private var type: JsonField? = null + private var thresholds: JsonField>? = null + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + currency = body.currency + type = body.type + thresholds = body.thresholds.map { it.toMutableList() } + additionalProperties = body.additionalProperties.toMutableMap() + } + + /** The case sensitive currency or custom pricing unit to use for this alert. */ + fun currency(currency: String) = currency(JsonField.of(currency)) + + /** + * Sets [Builder.currency] to an arbitrary JSON value. + * + * You should usually call [Builder.currency] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun currency(currency: JsonField) = apply { this.currency = currency } + + /** The type of alert to create. This must be a valid alert type. */ + fun type(type: Type) = type(JsonField.of(type)) + + /** + * Sets [Builder.type] to an arbitrary JSON value. + * + * You should usually call [Builder.type] with a well-typed [Type] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun type(type: JsonField) = apply { this.type = type } + + /** The thresholds that define the values at which the alert will be triggered. */ + fun thresholds(thresholds: List?) = + thresholds(JsonField.ofNullable(thresholds)) + + /** Alias for calling [Builder.thresholds] with `thresholds.orElse(null)`. */ + fun thresholds(thresholds: Optional>) = + thresholds(thresholds.getOrNull()) + + /** + * Sets [Builder.thresholds] to an arbitrary JSON value. + * + * You should usually call [Builder.thresholds] with a well-typed `List` + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + fun thresholds(thresholds: JsonField>) = apply { + this.thresholds = thresholds.map { it.toMutableList() } + } + + /** + * Adds a single [Threshold] to [thresholds]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addThreshold(threshold: Threshold) = apply { + thresholds = + (thresholds ?: JsonField.of(mutableListOf())).also { + checkKnown("thresholds", it).add(threshold) + } + } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .currency() + * .type() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body( + checkRequired("currency", currency), + checkRequired("type", type), + (thresholds ?: JsonMissing.of()).map { it.toImmutable() }, + additionalProperties.toMutableMap(), + ) + } + + private var validated: Boolean = false + + fun validate(): Body = apply { + if (validated) { + return@apply + } + + currency() + type() + thresholds().ifPresent { it.forEach { it.validate() } } + validated = true + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Body && currency == other.currency && type == other.type && thresholds == other.thresholds && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(currency, type, thresholds, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{currency=$currency, type=$type, thresholds=$thresholds, additionalProperties=$additionalProperties}" + } + /** The type of alert to create. This must be a valid alert type. */ class Type @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -658,17 +666,17 @@ private constructor( } /** Thresholds are used to define the conditions under which an alert will be triggered. */ - @NoAutoDetect class Threshold - @JsonCreator private constructor( - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val value: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("value") @ExcludeMissing value: JsonField = JsonMissing.of() + ) : this(value, mutableMapOf()) + /** * The value at which an alert will fire. For credit balance alerts, the alert will fire at * or below this value. For usage and cost alerts, the alert will fire at or above this @@ -686,20 +694,15 @@ private constructor( */ @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Threshold = apply { - if (validated) { - return@apply - } - - value() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -776,7 +779,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): Threshold = - Threshold(checkRequired("value", value), additionalProperties.toImmutable()) + Threshold(checkRequired("value", value), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Threshold = apply { + if (validated) { + return@apply + } + + value() + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForExternalCustomerParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForExternalCustomerParams.kt index 727c9b24..caa76db5 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForExternalCustomerParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForExternalCustomerParams.kt @@ -11,15 +11,14 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -93,244 +92,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - fun _pathParam(index: Int): String = - when (index) { - 0 -> externalCustomerId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("type") @ExcludeMissing private val type: JsonField = JsonMissing.of(), - @JsonProperty("thresholds") - @ExcludeMissing - private val thresholds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * The case sensitive currency or custom pricing unit to use for this alert. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun currency(): String = currency.getRequired("currency") - - /** - * The type of alert to create. This must be a valid alert type. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun type(): Type = type.getRequired("type") - - /** - * The thresholds that define the values at which the alert will be triggered. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun thresholds(): Optional> = - Optional.ofNullable(thresholds.getNullable("thresholds")) - - /** - * Returns the raw JSON value of [currency]. - * - * Unlike [currency], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency - - /** - * Returns the raw JSON value of [type]. - * - * Unlike [type], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type - - /** - * Returns the raw JSON value of [thresholds]. - * - * Unlike [thresholds], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("thresholds") - @ExcludeMissing - fun _thresholds(): JsonField> = thresholds - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - currency() - type() - thresholds().ifPresent { it.forEach { it.validate() } } - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .currency() - * .type() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var currency: JsonField? = null - private var type: JsonField? = null - private var thresholds: JsonField>? = null - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - currency = body.currency - type = body.type - thresholds = body.thresholds.map { it.toMutableList() } - additionalProperties = body.additionalProperties.toMutableMap() - } - - /** The case sensitive currency or custom pricing unit to use for this alert. */ - fun currency(currency: String) = currency(JsonField.of(currency)) - - /** - * Sets [Builder.currency] to an arbitrary JSON value. - * - * You should usually call [Builder.currency] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun currency(currency: JsonField) = apply { this.currency = currency } - - /** The type of alert to create. This must be a valid alert type. */ - fun type(type: Type) = type(JsonField.of(type)) - - /** - * Sets [Builder.type] to an arbitrary JSON value. - * - * You should usually call [Builder.type] with a well-typed [Type] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun type(type: JsonField) = apply { this.type = type } - - /** The thresholds that define the values at which the alert will be triggered. */ - fun thresholds(thresholds: List?) = - thresholds(JsonField.ofNullable(thresholds)) - - /** Alias for calling [Builder.thresholds] with `thresholds.orElse(null)`. */ - fun thresholds(thresholds: Optional>) = - thresholds(thresholds.getOrNull()) - - /** - * Sets [Builder.thresholds] to an arbitrary JSON value. - * - * You should usually call [Builder.thresholds] with a well-typed `List` - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - fun thresholds(thresholds: JsonField>) = apply { - this.thresholds = thresholds.map { it.toMutableList() } - } - - /** - * Adds a single [Threshold] to [thresholds]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addThreshold(threshold: Threshold) = apply { - thresholds = - (thresholds ?: JsonField.of(mutableListOf())).also { - checkKnown("thresholds", it).add(threshold) - } - } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .currency() - * .type() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body( - checkRequired("currency", currency), - checkRequired("type", type), - (thresholds ?: JsonMissing.of()).map { it.toImmutable() }, - additionalProperties.toImmutable(), - ) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && currency == other.currency && type == other.type && thresholds == other.thresholds && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(currency, type, thresholds, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{currency=$currency, type=$type, thresholds=$thresholds, additionalProperties=$additionalProperties}" - } - fun toBuilder() = Builder().from(this) companion object { @@ -350,7 +111,6 @@ private constructor( } /** A builder for [AlertCreateForExternalCustomerParams]. */ - @NoAutoDetect class Builder internal constructor() { private var externalCustomerId: String? = null @@ -559,6 +319,254 @@ private constructor( ) } + @JvmSynthetic internal fun _body(): Body = body + + fun _pathParam(index: Int): String = + when (index) { + 0 -> externalCustomerId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body + private constructor( + private val currency: JsonField, + private val type: JsonField, + private val thresholds: JsonField>, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + @JsonProperty("thresholds") + @ExcludeMissing + thresholds: JsonField> = JsonMissing.of(), + ) : this(currency, type, thresholds, mutableMapOf()) + + /** + * The case sensitive currency or custom pricing unit to use for this alert. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun currency(): String = currency.getRequired("currency") + + /** + * The type of alert to create. This must be a valid alert type. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun type(): Type = type.getRequired("type") + + /** + * The thresholds that define the values at which the alert will be triggered. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun thresholds(): Optional> = + Optional.ofNullable(thresholds.getNullable("thresholds")) + + /** + * Returns the raw JSON value of [currency]. + * + * Unlike [currency], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + + /** + * Returns the raw JSON value of [type]. + * + * Unlike [type], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type + + /** + * Returns the raw JSON value of [thresholds]. + * + * Unlike [thresholds], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("thresholds") + @ExcludeMissing + fun _thresholds(): JsonField> = thresholds + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .currency() + * .type() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var currency: JsonField? = null + private var type: JsonField? = null + private var thresholds: JsonField>? = null + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + currency = body.currency + type = body.type + thresholds = body.thresholds.map { it.toMutableList() } + additionalProperties = body.additionalProperties.toMutableMap() + } + + /** The case sensitive currency or custom pricing unit to use for this alert. */ + fun currency(currency: String) = currency(JsonField.of(currency)) + + /** + * Sets [Builder.currency] to an arbitrary JSON value. + * + * You should usually call [Builder.currency] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun currency(currency: JsonField) = apply { this.currency = currency } + + /** The type of alert to create. This must be a valid alert type. */ + fun type(type: Type) = type(JsonField.of(type)) + + /** + * Sets [Builder.type] to an arbitrary JSON value. + * + * You should usually call [Builder.type] with a well-typed [Type] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun type(type: JsonField) = apply { this.type = type } + + /** The thresholds that define the values at which the alert will be triggered. */ + fun thresholds(thresholds: List?) = + thresholds(JsonField.ofNullable(thresholds)) + + /** Alias for calling [Builder.thresholds] with `thresholds.orElse(null)`. */ + fun thresholds(thresholds: Optional>) = + thresholds(thresholds.getOrNull()) + + /** + * Sets [Builder.thresholds] to an arbitrary JSON value. + * + * You should usually call [Builder.thresholds] with a well-typed `List` + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + fun thresholds(thresholds: JsonField>) = apply { + this.thresholds = thresholds.map { it.toMutableList() } + } + + /** + * Adds a single [Threshold] to [thresholds]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addThreshold(threshold: Threshold) = apply { + thresholds = + (thresholds ?: JsonField.of(mutableListOf())).also { + checkKnown("thresholds", it).add(threshold) + } + } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .currency() + * .type() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body( + checkRequired("currency", currency), + checkRequired("type", type), + (thresholds ?: JsonMissing.of()).map { it.toImmutable() }, + additionalProperties.toMutableMap(), + ) + } + + private var validated: Boolean = false + + fun validate(): Body = apply { + if (validated) { + return@apply + } + + currency() + type() + thresholds().ifPresent { it.forEach { it.validate() } } + validated = true + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Body && currency == other.currency && type == other.type && thresholds == other.thresholds && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(currency, type, thresholds, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{currency=$currency, type=$type, thresholds=$thresholds, additionalProperties=$additionalProperties}" + } + /** The type of alert to create. This must be a valid alert type. */ class Type @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -664,17 +672,17 @@ private constructor( } /** Thresholds are used to define the conditions under which an alert will be triggered. */ - @NoAutoDetect class Threshold - @JsonCreator private constructor( - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val value: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("value") @ExcludeMissing value: JsonField = JsonMissing.of() + ) : this(value, mutableMapOf()) + /** * The value at which an alert will fire. For credit balance alerts, the alert will fire at * or below this value. For usage and cost alerts, the alert will fire at or above this @@ -692,20 +700,15 @@ private constructor( */ @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Threshold = apply { - if (validated) { - return@apply - } - - value() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -782,7 +785,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): Threshold = - Threshold(checkRequired("value", value), additionalProperties.toImmutable()) + Threshold(checkRequired("value", value), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Threshold = apply { + if (validated) { + return@apply + } + + value() + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForSubscriptionParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForSubscriptionParams.kt index 594ca94d..5aa2c875 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForSubscriptionParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForSubscriptionParams.kt @@ -11,15 +11,14 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -97,241 +96,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - fun _pathParam(index: Int): String = - when (index) { - 0 -> subscriptionId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("thresholds") - @ExcludeMissing - private val thresholds: JsonField> = JsonMissing.of(), - @JsonProperty("type") @ExcludeMissing private val type: JsonField = JsonMissing.of(), - @JsonProperty("metric_id") - @ExcludeMissing - private val metricId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * The thresholds that define the values at which the alert will be triggered. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun thresholds(): List = thresholds.getRequired("thresholds") - - /** - * The type of alert to create. This must be a valid alert type. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun type(): Type = type.getRequired("type") - - /** - * The metric to track usage for. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun metricId(): Optional = Optional.ofNullable(metricId.getNullable("metric_id")) - - /** - * Returns the raw JSON value of [thresholds]. - * - * Unlike [thresholds], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("thresholds") - @ExcludeMissing - fun _thresholds(): JsonField> = thresholds - - /** - * Returns the raw JSON value of [type]. - * - * Unlike [type], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type - - /** - * Returns the raw JSON value of [metricId]. - * - * Unlike [metricId], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("metric_id") @ExcludeMissing fun _metricId(): JsonField = metricId - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - thresholds().forEach { it.validate() } - type() - metricId() - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .thresholds() - * .type() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var thresholds: JsonField>? = null - private var type: JsonField? = null - private var metricId: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - thresholds = body.thresholds.map { it.toMutableList() } - type = body.type - metricId = body.metricId - additionalProperties = body.additionalProperties.toMutableMap() - } - - /** The thresholds that define the values at which the alert will be triggered. */ - fun thresholds(thresholds: List) = thresholds(JsonField.of(thresholds)) - - /** - * Sets [Builder.thresholds] to an arbitrary JSON value. - * - * You should usually call [Builder.thresholds] with a well-typed `List` - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - fun thresholds(thresholds: JsonField>) = apply { - this.thresholds = thresholds.map { it.toMutableList() } - } - - /** - * Adds a single [Threshold] to [thresholds]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addThreshold(threshold: Threshold) = apply { - thresholds = - (thresholds ?: JsonField.of(mutableListOf())).also { - checkKnown("thresholds", it).add(threshold) - } - } - - /** The type of alert to create. This must be a valid alert type. */ - fun type(type: Type) = type(JsonField.of(type)) - - /** - * Sets [Builder.type] to an arbitrary JSON value. - * - * You should usually call [Builder.type] with a well-typed [Type] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun type(type: JsonField) = apply { this.type = type } - - /** The metric to track usage for. */ - fun metricId(metricId: String?) = metricId(JsonField.ofNullable(metricId)) - - /** Alias for calling [Builder.metricId] with `metricId.orElse(null)`. */ - fun metricId(metricId: Optional) = metricId(metricId.getOrNull()) - - /** - * Sets [Builder.metricId] to an arbitrary JSON value. - * - * You should usually call [Builder.metricId] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun metricId(metricId: JsonField) = apply { this.metricId = metricId } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .thresholds() - * .type() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body( - checkRequired("thresholds", thresholds).map { it.toImmutable() }, - checkRequired("type", type), - metricId, - additionalProperties.toImmutable(), - ) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && thresholds == other.thresholds && type == other.type && metricId == other.metricId && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(thresholds, type, metricId, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{thresholds=$thresholds, type=$type, metricId=$metricId, additionalProperties=$additionalProperties}" - } - fun toBuilder() = Builder().from(this) companion object { @@ -351,7 +115,6 @@ private constructor( } /** A builder for [AlertCreateForSubscriptionParams]. */ - @NoAutoDetect class Builder internal constructor() { private var subscriptionId: String? = null @@ -557,50 +320,290 @@ private constructor( ) } - /** Thresholds are used to define the conditions under which an alert will be triggered. */ - @NoAutoDetect - class Threshold - @JsonCreator + @JvmSynthetic internal fun _body(): Body = body + + fun _pathParam(index: Int): String = + when (index) { + 0 -> subscriptionId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body private constructor( - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val thresholds: JsonField>, + private val type: JsonField, + private val metricId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("thresholds") + @ExcludeMissing + thresholds: JsonField> = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + @JsonProperty("metric_id") + @ExcludeMissing + metricId: JsonField = JsonMissing.of(), + ) : this(thresholds, type, metricId, mutableMapOf()) + /** - * The value at which an alert will fire. For credit balance alerts, the alert will fire at - * or below this value. For usage and cost alerts, the alert will fire at or above this - * value. + * The thresholds that define the values at which the alert will be triggered. * * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun value(): Double = value.getRequired("value") + fun thresholds(): List = thresholds.getRequired("thresholds") /** - * Returns the raw JSON value of [value]. + * The type of alert to create. This must be a valid alert type. * - * Unlike [value], this method doesn't throw if the JSON field has an unexpected type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + fun type(): Type = type.getRequired("type") + + /** + * The metric to track usage for. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun metricId(): Optional = Optional.ofNullable(metricId.getNullable("metric_id")) + + /** + * Returns the raw JSON value of [thresholds]. + * + * Unlike [thresholds], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("thresholds") + @ExcludeMissing + fun _thresholds(): JsonField> = thresholds + + /** + * Returns the raw JSON value of [type]. + * + * Unlike [type], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type + + /** + * Returns the raw JSON value of [metricId]. + * + * Unlike [metricId], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("metric_id") @ExcludeMissing fun _metricId(): JsonField = metricId + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .thresholds() + * .type() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var thresholds: JsonField>? = null + private var type: JsonField? = null + private var metricId: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + thresholds = body.thresholds.map { it.toMutableList() } + type = body.type + metricId = body.metricId + additionalProperties = body.additionalProperties.toMutableMap() + } + + /** The thresholds that define the values at which the alert will be triggered. */ + fun thresholds(thresholds: List) = thresholds(JsonField.of(thresholds)) + + /** + * Sets [Builder.thresholds] to an arbitrary JSON value. + * + * You should usually call [Builder.thresholds] with a well-typed `List` + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + fun thresholds(thresholds: JsonField>) = apply { + this.thresholds = thresholds.map { it.toMutableList() } + } + + /** + * Adds a single [Threshold] to [thresholds]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addThreshold(threshold: Threshold) = apply { + thresholds = + (thresholds ?: JsonField.of(mutableListOf())).also { + checkKnown("thresholds", it).add(threshold) + } + } + + /** The type of alert to create. This must be a valid alert type. */ + fun type(type: Type) = type(JsonField.of(type)) + + /** + * Sets [Builder.type] to an arbitrary JSON value. + * + * You should usually call [Builder.type] with a well-typed [Type] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun type(type: JsonField) = apply { this.type = type } + + /** The metric to track usage for. */ + fun metricId(metricId: String?) = metricId(JsonField.ofNullable(metricId)) + + /** Alias for calling [Builder.metricId] with `metricId.orElse(null)`. */ + fun metricId(metricId: Optional) = metricId(metricId.getOrNull()) + + /** + * Sets [Builder.metricId] to an arbitrary JSON value. + * + * You should usually call [Builder.metricId] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun metricId(metricId: JsonField) = apply { this.metricId = metricId } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .thresholds() + * .type() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body( + checkRequired("thresholds", thresholds).map { it.toImmutable() }, + checkRequired("type", type), + metricId, + additionalProperties.toMutableMap(), + ) + } private var validated: Boolean = false - fun validate(): Threshold = apply { + fun validate(): Body = apply { if (validated) { return@apply } - value() + thresholds().forEach { it.validate() } + type() + metricId() validated = true } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Body && thresholds == other.thresholds && type == other.type && metricId == other.metricId && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(thresholds, type, metricId, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{thresholds=$thresholds, type=$type, metricId=$metricId, additionalProperties=$additionalProperties}" + } + + /** Thresholds are used to define the conditions under which an alert will be triggered. */ + class Threshold + private constructor( + private val value: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("value") @ExcludeMissing value: JsonField = JsonMissing.of() + ) : this(value, mutableMapOf()) + + /** + * The value at which an alert will fire. For credit balance alerts, the alert will fire at + * or below this value. For usage and cost alerts, the alert will fire at or above this + * value. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun value(): Double = value.getRequired("value") + + /** + * Returns the raw JSON value of [value]. + * + * Unlike [value], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -676,7 +679,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): Threshold = - Threshold(checkRequired("value", value), additionalProperties.toImmutable()) + Threshold(checkRequired("value", value), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Threshold = apply { + if (validated) { + return@apply + } + + value() + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertDisableParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertDisableParams.kt index b354b148..e17591a6 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertDisableParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertDisableParams.kt @@ -2,13 +2,15 @@ package com.withorb.api.models +import com.fasterxml.jackson.annotation.JsonAnyGetter +import com.fasterxml.jackson.annotation.JsonAnySetter +import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.toImmutable +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -24,7 +26,7 @@ private constructor( private val subscriptionId: String?, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: Map, + private val additionalBodyProperties: MutableMap, ) : Params { fun alertConfigurationId(): String = alertConfigurationId @@ -36,27 +38,15 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _additionalBodyProperties(): Map = additionalBodyProperties - - @JvmSynthetic - internal fun _body(): Optional> = - Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) - - fun _pathParam(index: Int): String = - when (index) { - 0 -> alertConfigurationId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders + @JsonAnySetter + private fun putAdditionalBodyProperty(key: String, value: JsonValue) { + additionalBodyProperties.put(key, value) + } - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - subscriptionId?.let { put("subscription_id", it) } - putAll(additionalQueryParams) - } - .build() + @JsonAnyGetter + @ExcludeMissing + fun _additionalBodyProperties(): Map = + Collections.unmodifiableMap(additionalBodyProperties) fun toBuilder() = Builder().from(this) @@ -74,7 +64,6 @@ private constructor( } /** A builder for [AlertDisableParams]. */ - @NoAutoDetect class Builder internal constructor() { private var alertConfigurationId: String? = null @@ -241,10 +230,30 @@ private constructor( subscriptionId, additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toImmutable(), + additionalBodyProperties.toMutableMap(), ) } + @JvmSynthetic + internal fun _body(): Optional> = + Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) + + fun _pathParam(index: Int): String = + when (index) { + 0 -> alertConfigurationId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + subscriptionId?.let { put("subscription_id", it) } + putAll(additionalQueryParams) + } + .build() + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertEnableParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertEnableParams.kt index 351d0357..3b2f5350 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertEnableParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertEnableParams.kt @@ -2,13 +2,15 @@ package com.withorb.api.models +import com.fasterxml.jackson.annotation.JsonAnyGetter +import com.fasterxml.jackson.annotation.JsonAnySetter +import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.toImmutable +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -24,7 +26,7 @@ private constructor( private val subscriptionId: String?, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: Map, + private val additionalBodyProperties: MutableMap, ) : Params { fun alertConfigurationId(): String = alertConfigurationId @@ -36,27 +38,15 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _additionalBodyProperties(): Map = additionalBodyProperties - - @JvmSynthetic - internal fun _body(): Optional> = - Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) - - fun _pathParam(index: Int): String = - when (index) { - 0 -> alertConfigurationId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders + @JsonAnySetter + private fun putAdditionalBodyProperty(key: String, value: JsonValue) { + additionalBodyProperties.put(key, value) + } - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - subscriptionId?.let { put("subscription_id", it) } - putAll(additionalQueryParams) - } - .build() + @JsonAnyGetter + @ExcludeMissing + fun _additionalBodyProperties(): Map = + Collections.unmodifiableMap(additionalBodyProperties) fun toBuilder() = Builder().from(this) @@ -74,7 +64,6 @@ private constructor( } /** A builder for [AlertEnableParams]. */ - @NoAutoDetect class Builder internal constructor() { private var alertConfigurationId: String? = null @@ -241,10 +230,30 @@ private constructor( subscriptionId, additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toImmutable(), + additionalBodyProperties.toMutableMap(), ) } + @JvmSynthetic + internal fun _body(): Optional> = + Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) + + fun _pathParam(index: Int): String = + when (index) { + 0 -> alertConfigurationId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + subscriptionId?.let { put("subscription_id", it) } + putAll(additionalQueryParams) + } + .build() + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertListPage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertListPage.kt index 61bec478..e9b4474b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertListPage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertListPage.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.blocking.AlertService +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.stream.Stream @@ -91,17 +89,19 @@ private constructor( AlertListPage(alertsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -114,9 +114,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -185,7 +191,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertListPageAsync.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertListPageAsync.kt index 3989f740..4d3af4d1 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertListPageAsync.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertListPageAsync.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.async.AlertServiceAsync +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.concurrent.CompletableFuture @@ -93,17 +91,19 @@ private constructor( AlertListPageAsync(alertsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -116,9 +116,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -187,7 +193,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertListParams.kt index 0b74f633..c2b6c65d 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertListParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams @@ -68,32 +67,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - createdAtGt?.let { - put("created_at[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtGte?.let { - put("created_at[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtLt?.let { - put("created_at[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtLte?.let { - put("created_at[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - cursor?.let { put("cursor", it) } - customerId?.let { put("customer_id", it) } - externalCustomerId?.let { put("external_customer_id", it) } - limit?.let { put("limit", it.toString()) } - subscriptionId?.let { put("subscription_id", it) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -105,7 +78,6 @@ private constructor( } /** A builder for [AlertListParams]. */ - @NoAutoDetect class Builder internal constructor() { private var createdAtGt: OffsetDateTime? = null @@ -324,6 +296,32 @@ private constructor( ) } + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + createdAtGt?.let { + put("created_at[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtGte?.let { + put("created_at[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtLt?.let { + put("created_at[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtLte?.let { + put("created_at[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + cursor?.let { put("cursor", it) } + customerId?.let { put("customer_id", it) } + externalCustomerId?.let { put("external_customer_id", it) } + limit?.let { put("limit", it.toString()) } + subscriptionId?.let { put("subscription_id", it) } + putAll(additionalQueryParams) + } + .build() + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertRetrieveParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertRetrieveParams.kt index 130f4a61..0f01a409 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertRetrieveParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertRetrieveParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -23,16 +22,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> alertId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - fun toBuilder() = Builder().from(this) companion object { @@ -49,7 +38,6 @@ private constructor( } /** A builder for [AlertRetrieveParams]. */ - @NoAutoDetect class Builder internal constructor() { private var alertId: String? = null @@ -183,6 +171,16 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> alertId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertUpdateParams.kt index cc4b028c..089cef3d 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertUpdateParams.kt @@ -10,15 +10,14 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects /** This endpoint updates the thresholds of an alert. */ @@ -53,170 +52,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - fun _pathParam(index: Int): String = - when (index) { - 0 -> alertConfigurationId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("thresholds") - @ExcludeMissing - private val thresholds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * The thresholds that define the values at which the alert will be triggered. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun thresholds(): List = thresholds.getRequired("thresholds") - - /** - * Returns the raw JSON value of [thresholds]. - * - * Unlike [thresholds], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("thresholds") - @ExcludeMissing - fun _thresholds(): JsonField> = thresholds - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - thresholds().forEach { it.validate() } - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .thresholds() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var thresholds: JsonField>? = null - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - thresholds = body.thresholds.map { it.toMutableList() } - additionalProperties = body.additionalProperties.toMutableMap() - } - - /** The thresholds that define the values at which the alert will be triggered. */ - fun thresholds(thresholds: List) = thresholds(JsonField.of(thresholds)) - - /** - * Sets [Builder.thresholds] to an arbitrary JSON value. - * - * You should usually call [Builder.thresholds] with a well-typed `List` - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - fun thresholds(thresholds: JsonField>) = apply { - this.thresholds = thresholds.map { it.toMutableList() } - } - - /** - * Adds a single [Threshold] to [thresholds]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addThreshold(threshold: Threshold) = apply { - thresholds = - (thresholds ?: JsonField.of(mutableListOf())).also { - checkKnown("thresholds", it).add(threshold) - } - } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .thresholds() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body( - checkRequired("thresholds", thresholds).map { it.toImmutable() }, - additionalProperties.toImmutable(), - ) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && thresholds == other.thresholds && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(thresholds, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{thresholds=$thresholds, additionalProperties=$additionalProperties}" - } - fun toBuilder() = Builder().from(this) companion object { @@ -234,7 +69,6 @@ private constructor( } /** A builder for [AlertUpdateParams]. */ - @NoAutoDetect class Builder internal constructor() { private var alertConfigurationId: String? = null @@ -414,50 +248,217 @@ private constructor( ) } - /** Thresholds are used to define the conditions under which an alert will be triggered. */ - @NoAutoDetect - class Threshold - @JsonCreator + @JvmSynthetic internal fun _body(): Body = body + + fun _pathParam(index: Int): String = + when (index) { + 0 -> alertConfigurationId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body private constructor( - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val thresholds: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("thresholds") + @ExcludeMissing + thresholds: JsonField> = JsonMissing.of() + ) : this(thresholds, mutableMapOf()) + /** - * The value at which an alert will fire. For credit balance alerts, the alert will fire at - * or below this value. For usage and cost alerts, the alert will fire at or above this - * value. + * The thresholds that define the values at which the alert will be triggered. * * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun value(): Double = value.getRequired("value") + fun thresholds(): List = thresholds.getRequired("thresholds") /** - * Returns the raw JSON value of [value]. + * Returns the raw JSON value of [thresholds]. * - * Unlike [value], this method doesn't throw if the JSON field has an unexpected type. + * Unlike [thresholds], this method doesn't throw if the JSON field has an unexpected type. */ - @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + @JsonProperty("thresholds") + @ExcludeMissing + fun _thresholds(): JsonField> = thresholds + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .thresholds() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var thresholds: JsonField>? = null + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + thresholds = body.thresholds.map { it.toMutableList() } + additionalProperties = body.additionalProperties.toMutableMap() + } + + /** The thresholds that define the values at which the alert will be triggered. */ + fun thresholds(thresholds: List) = thresholds(JsonField.of(thresholds)) + + /** + * Sets [Builder.thresholds] to an arbitrary JSON value. + * + * You should usually call [Builder.thresholds] with a well-typed `List` + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + fun thresholds(thresholds: JsonField>) = apply { + this.thresholds = thresholds.map { it.toMutableList() } + } + + /** + * Adds a single [Threshold] to [thresholds]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addThreshold(threshold: Threshold) = apply { + thresholds = + (thresholds ?: JsonField.of(mutableListOf())).also { + checkKnown("thresholds", it).add(threshold) + } + } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .thresholds() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body( + checkRequired("thresholds", thresholds).map { it.toImmutable() }, + additionalProperties.toMutableMap(), + ) + } private var validated: Boolean = false - fun validate(): Threshold = apply { + fun validate(): Body = apply { if (validated) { return@apply } - value() + thresholds().forEach { it.validate() } validated = true } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Body && thresholds == other.thresholds && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(thresholds, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{thresholds=$thresholds, additionalProperties=$additionalProperties}" + } + + /** Thresholds are used to define the conditions under which an alert will be triggered. */ + class Threshold + private constructor( + private val value: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("value") @ExcludeMissing value: JsonField = JsonMissing.of() + ) : this(value, mutableMapOf()) + + /** + * The value at which an alert will fire. For credit balance alerts, the alert will fire at + * or below this value. For usage and cost alerts, the alert will fire at or above this + * value. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun value(): Double = value.getRequired("value") + + /** + * Returns the raw JSON value of [value]. + * + * Unlike [value], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -533,7 +534,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): Threshold = - Threshold(checkRequired("value", value), additionalProperties.toImmutable()) + Threshold(checkRequired("value", value), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Threshold = apply { + if (validated) { + return@apply + } + + value() + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/AmountDiscount.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/AmountDiscount.kt index d5b5fac5..d7fc6768 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/AmountDiscount.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/AmountDiscount.kt @@ -11,35 +11,38 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class AmountDiscount -@JsonCreator private constructor( - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val discountType: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("reason") @ExcludeMissing reason: JsonField = JsonMissing.of(), + ) : this(amountDiscount, appliesToPriceIds, discountType, reason, mutableMapOf()) + /** * Only available if discount_type is `amount`. * @@ -104,23 +107,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AmountDiscount = apply { - if (validated) { - return@apply - } - - amountDiscount() - appliesToPriceIds() - discountType() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -266,10 +261,24 @@ private constructor( checkRequired("appliesToPriceIds", appliesToPriceIds).map { it.toImmutable() }, checkRequired("discountType", discountType), reason, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AmountDiscount = apply { + if (validated) { + return@apply + } + + amountDiscount() + appliesToPriceIds() + discountType() + reason() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/BillableMetric.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/BillableMetric.kt index 7e3be6dd..5581c5fe 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/BillableMetric.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/BillableMetric.kt @@ -11,11 +11,9 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -24,25 +22,29 @@ import kotlin.jvm.optionals.getOrNull * The Metric resource represents a calculation of a quantity based on events. Metrics are defined * by the query that transforms raw usage events into meaningful values for your customers. */ -@NoAutoDetect class BillableMetric -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("name") @ExcludeMissing private val name: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val description: JsonField, + private val item: JsonField, + private val metadata: JsonField, + private val name: JsonField, + private val status: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("metadata") @ExcludeMissing metadata: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + ) : this(id, description, item, metadata, name, status, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -130,25 +132,15 @@ private constructor( */ @JsonProperty("status") @ExcludeMissing fun _status(): JsonField = status + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - description() - item().validate() - metadata().validate() - name() - status() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -311,36 +303,45 @@ private constructor( checkRequired("metadata", metadata), checkRequired("name", name), checkRequired("status", status), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + description() + item().validate() + metadata().validate() + name() + status() + validated = true + } + /** * User specified key-value pairs for the resource. If not present, this defaults to an empty * dictionary. Individual keys can be removed by setting the value to `null`, and the entire * metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -384,7 +385,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/Coupon.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/Coupon.kt index 042ae457..a93fa471 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/Coupon.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/Coupon.kt @@ -19,13 +19,11 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -36,32 +34,48 @@ import kotlin.jvm.optionals.getOrNull * which applies the discount to a subscription or invoice. The duration of a coupon determines how * long it remains available for use by end users. */ -@NoAutoDetect class Coupon -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("archived_at") - @ExcludeMissing - private val archivedAt: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("duration_in_months") - @ExcludeMissing - private val durationInMonths: JsonField = JsonMissing.of(), - @JsonProperty("max_redemptions") - @ExcludeMissing - private val maxRedemptions: JsonField = JsonMissing.of(), - @JsonProperty("redemption_code") - @ExcludeMissing - private val redemptionCode: JsonField = JsonMissing.of(), - @JsonProperty("times_redeemed") - @ExcludeMissing - private val timesRedeemed: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val archivedAt: JsonField, + private val discount: JsonField, + private val durationInMonths: JsonField, + private val maxRedemptions: JsonField, + private val redemptionCode: JsonField, + private val timesRedeemed: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("archived_at") + @ExcludeMissing + archivedAt: JsonField = JsonMissing.of(), + @JsonProperty("discount") @ExcludeMissing discount: JsonField = JsonMissing.of(), + @JsonProperty("duration_in_months") + @ExcludeMissing + durationInMonths: JsonField = JsonMissing.of(), + @JsonProperty("max_redemptions") + @ExcludeMissing + maxRedemptions: JsonField = JsonMissing.of(), + @JsonProperty("redemption_code") + @ExcludeMissing + redemptionCode: JsonField = JsonMissing.of(), + @JsonProperty("times_redeemed") + @ExcludeMissing + timesRedeemed: JsonField = JsonMissing.of(), + ) : this( + id, + archivedAt, + discount, + durationInMonths, + maxRedemptions, + redemptionCode, + timesRedeemed, + mutableMapOf(), + ) + /** * Also referred to as coupon_id in this documentation. * @@ -182,26 +196,15 @@ private constructor( @ExcludeMissing fun _timesRedeemed(): JsonField = timesRedeemed + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Coupon = apply { - if (validated) { - return@apply - } - - id() - archivedAt() - discount().validate() - durationInMonths() - maxRedemptions() - redemptionCode() - timesRedeemed() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -428,10 +431,27 @@ private constructor( checkRequired("maxRedemptions", maxRedemptions), checkRequired("redemptionCode", redemptionCode), checkRequired("timesRedeemed", timesRedeemed), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Coupon = apply { + if (validated) { + return@apply + } + + id() + archivedAt() + discount().validate() + durationInMonths() + maxRedemptions() + redemptionCode() + timesRedeemed() + validated = true + } + @JsonDeserialize(using = Discount.Deserializer::class) @JsonSerialize(using = Discount.Serializer::class) class Discount diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponArchiveParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponArchiveParams.kt index 2fc463fe..64a8e455 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponArchiveParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponArchiveParams.kt @@ -2,13 +2,15 @@ package com.withorb.api.models +import com.fasterxml.jackson.annotation.JsonAnyGetter +import com.fasterxml.jackson.annotation.JsonAnySetter +import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.toImmutable +import java.util.Collections import java.util.Objects import java.util.Optional @@ -22,7 +24,7 @@ private constructor( private val couponId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: Map, + private val additionalBodyProperties: MutableMap, ) : Params { fun couponId(): String = couponId @@ -31,21 +33,15 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _additionalBodyProperties(): Map = additionalBodyProperties - - @JvmSynthetic - internal fun _body(): Optional> = - Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) - - fun _pathParam(index: Int): String = - when (index) { - 0 -> couponId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders + @JsonAnySetter + private fun putAdditionalBodyProperty(key: String, value: JsonValue) { + additionalBodyProperties.put(key, value) + } - override fun _queryParams(): QueryParams = additionalQueryParams + @JsonAnyGetter + @ExcludeMissing + fun _additionalBodyProperties(): Map = + Collections.unmodifiableMap(additionalBodyProperties) fun toBuilder() = Builder().from(this) @@ -63,7 +59,6 @@ private constructor( } /** A builder for [CouponArchiveParams]. */ - @NoAutoDetect class Builder internal constructor() { private var couponId: String? = null @@ -218,10 +213,24 @@ private constructor( checkRequired("couponId", couponId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toImmutable(), + additionalBodyProperties.toMutableMap(), ) } + @JvmSynthetic + internal fun _body(): Optional> = + Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) + + fun _pathParam(index: Int): String = + when (index) { + 0 -> couponId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponCreateParams.kt index 5a8728e5..984ef4f4 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponCreateParams.kt @@ -20,15 +20,13 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -111,640 +109,650 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body + fun toBuilder() = Builder().from(this) - override fun _headers(): Headers = additionalHeaders + companion object { - override fun _queryParams(): QueryParams = additionalQueryParams + /** + * Returns a mutable builder for constructing an instance of [CouponCreateParams]. + * + * The following fields are required: + * ```java + * .discount() + * .redemptionCode() + * ``` + */ + @JvmStatic fun builder() = Builder() + } - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("redemption_code") - @ExcludeMissing - private val redemptionCode: JsonField = JsonMissing.of(), - @JsonProperty("duration_in_months") - @ExcludeMissing - private val durationInMonths: JsonField = JsonMissing.of(), - @JsonProperty("max_redemptions") - @ExcludeMissing - private val maxRedemptions: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { + /** A builder for [CouponCreateParams]. */ + class Builder internal constructor() { + + private var body: Body.Builder = Body.builder() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from(couponCreateParams: CouponCreateParams) = apply { + body = couponCreateParams.body.toBuilder() + additionalHeaders = couponCreateParams.additionalHeaders.toBuilder() + additionalQueryParams = couponCreateParams.additionalQueryParams.toBuilder() + } + + fun discount(discount: Discount) = apply { body.discount(discount) } /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * Sets [Builder.discount] to an arbitrary JSON value. + * + * You should usually call [Builder.discount] with a well-typed [Discount] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. */ - fun discount(): Discount = discount.getRequired("discount") + fun discount(discount: JsonField) = apply { body.discount(discount) } /** - * This string can be used to redeem this coupon for a given subscription. + * Alias for calling [discount] with `Discount.ofNewCouponPercentage(newCouponPercentage)`. + */ + fun discount(newCouponPercentage: Discount.NewCouponPercentageDiscount) = apply { + body.discount(newCouponPercentage) + } + + /** + * Alias for calling [discount] with the following: + * ```java + * Discount.NewCouponPercentageDiscount.builder() + * .discountType(CouponCreateParams.Discount.NewCouponPercentageDiscount.DiscountType.PERCENTAGE) + * .percentageDiscount(percentageDiscount) + * .build() + * ``` + */ + fun newCouponPercentageDiscount(percentageDiscount: Double) = apply { + body.newCouponPercentageDiscount(percentageDiscount) + } + + /** Alias for calling [discount] with `Discount.ofNewCouponAmount(newCouponAmount)`. */ + fun discount(newCouponAmount: Discount.NewCouponAmountDiscount) = apply { + body.discount(newCouponAmount) + } + + /** + * Alias for calling [discount] with the following: + * ```java + * Discount.NewCouponAmountDiscount.builder() + * .discountType(CouponCreateParams.Discount.NewCouponAmountDiscount.DiscountType.AMOUNT) + * .amountDiscount(amountDiscount) + * .build() + * ``` + */ + fun newCouponAmountDiscount(amountDiscount: String) = apply { + body.newCouponAmountDiscount(amountDiscount) + } + + /** This string can be used to redeem this coupon for a given subscription. */ + fun redemptionCode(redemptionCode: String) = apply { body.redemptionCode(redemptionCode) } + + /** + * Sets [Builder.redemptionCode] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * You should usually call [Builder.redemptionCode] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun redemptionCode(): String = redemptionCode.getRequired("redemption_code") + fun redemptionCode(redemptionCode: JsonField) = apply { + body.redemptionCode(redemptionCode) + } /** * This allows for a coupon's discount to apply for a limited time (determined in months); a * `null` value here means "unlimited time". - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). */ - fun durationInMonths(): Optional = - Optional.ofNullable(durationInMonths.getNullable("duration_in_months")) + fun durationInMonths(durationInMonths: Long?) = apply { + body.durationInMonths(durationInMonths) + } /** - * The maximum number of redemptions allowed for this coupon before it is exhausted;`null` - * here means "unlimited". + * Alias for [Builder.durationInMonths]. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * This unboxed primitive overload exists for backwards compatibility. */ - fun maxRedemptions(): Optional = - Optional.ofNullable(maxRedemptions.getNullable("max_redemptions")) + fun durationInMonths(durationInMonths: Long) = durationInMonths(durationInMonths as Long?) + + /** Alias for calling [Builder.durationInMonths] with `durationInMonths.orElse(null)`. */ + fun durationInMonths(durationInMonths: Optional) = + durationInMonths(durationInMonths.getOrNull()) /** - * Returns the raw JSON value of [discount]. + * Sets [Builder.durationInMonths] to an arbitrary JSON value. * - * Unlike [discount], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.durationInMonths] with a well-typed [Long] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("discount") @ExcludeMissing fun _discount(): JsonField = discount + fun durationInMonths(durationInMonths: JsonField) = apply { + body.durationInMonths(durationInMonths) + } /** - * Returns the raw JSON value of [redemptionCode]. - * - * Unlike [redemptionCode], this method doesn't throw if the JSON field has an unexpected - * type. + * The maximum number of redemptions allowed for this coupon before it is exhausted;`null` + * here means "unlimited". */ - @JsonProperty("redemption_code") - @ExcludeMissing - fun _redemptionCode(): JsonField = redemptionCode + fun maxRedemptions(maxRedemptions: Long?) = apply { body.maxRedemptions(maxRedemptions) } /** - * Returns the raw JSON value of [durationInMonths]. + * Alias for [Builder.maxRedemptions]. * - * Unlike [durationInMonths], this method doesn't throw if the JSON field has an unexpected - * type. + * This unboxed primitive overload exists for backwards compatibility. */ - @JsonProperty("duration_in_months") - @ExcludeMissing - fun _durationInMonths(): JsonField = durationInMonths + fun maxRedemptions(maxRedemptions: Long) = maxRedemptions(maxRedemptions as Long?) + + /** Alias for calling [Builder.maxRedemptions] with `maxRedemptions.orElse(null)`. */ + fun maxRedemptions(maxRedemptions: Optional) = + maxRedemptions(maxRedemptions.getOrNull()) /** - * Returns the raw JSON value of [maxRedemptions]. + * Sets [Builder.maxRedemptions] to an arbitrary JSON value. * - * Unlike [maxRedemptions], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.maxRedemptions] with a well-typed [Long] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. */ - @JsonProperty("max_redemptions") - @ExcludeMissing - fun _maxRedemptions(): JsonField = maxRedemptions + fun maxRedemptions(maxRedemptions: JsonField) = apply { + body.maxRedemptions(maxRedemptions) + } - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun additionalBodyProperties(additionalBodyProperties: Map) = apply { + body.additionalProperties(additionalBodyProperties) + } - private var validated: Boolean = false + fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { + body.putAdditionalProperty(key, value) + } - fun validate(): Body = apply { - if (validated) { - return@apply + fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = + apply { + body.putAllAdditionalProperties(additionalBodyProperties) } - discount().validate() - redemptionCode() - durationInMonths() - maxRedemptions() - validated = true + fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + body.removeAllAdditionalProperties(keys) } - fun toBuilder() = Builder().from(this) + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - companion object { + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .discount() - * .redemptionCode() - * ``` - */ - @JvmStatic fun builder() = Builder() + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) } - /** A builder for [Body]. */ - class Builder internal constructor() { + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } - private var discount: JsonField? = null - private var redemptionCode: JsonField? = null - private var durationInMonths: JsonField = JsonMissing.of() - private var maxRedemptions: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - @JvmSynthetic - internal fun from(body: Body) = apply { - discount = body.discount - redemptionCode = body.redemptionCode - durationInMonths = body.durationInMonths - maxRedemptions = body.maxRedemptions - additionalProperties = body.additionalProperties.toMutableMap() - } + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - fun discount(discount: Discount) = discount(JsonField.of(discount)) + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } - /** - * Sets [Builder.discount] to an arbitrary JSON value. - * - * You should usually call [Builder.discount] with a well-typed [Discount] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun discount(discount: JsonField) = apply { this.discount = discount } + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } - /** - * Alias for calling [discount] with - * `Discount.ofNewCouponPercentage(newCouponPercentage)`. - */ - fun discount(newCouponPercentage: Discount.NewCouponPercentageDiscount) = - discount(Discount.ofNewCouponPercentage(newCouponPercentage)) - - /** - * Alias for calling [discount] with the following: - * ```java - * Discount.NewCouponPercentageDiscount.builder() - * .discountType(CouponCreateParams.Discount.NewCouponPercentageDiscount.DiscountType.PERCENTAGE) - * .percentageDiscount(percentageDiscount) - * .build() - * ``` - */ - fun newCouponPercentageDiscount(percentageDiscount: Double) = - discount( - Discount.NewCouponPercentageDiscount.builder() - .discountType( - CouponCreateParams.Discount.NewCouponPercentageDiscount.DiscountType - .PERCENTAGE - ) - .percentageDiscount(percentageDiscount) - .build() - ) - - /** Alias for calling [discount] with `Discount.ofNewCouponAmount(newCouponAmount)`. */ - fun discount(newCouponAmount: Discount.NewCouponAmountDiscount) = - discount(Discount.ofNewCouponAmount(newCouponAmount)) - - /** - * Alias for calling [discount] with the following: - * ```java - * Discount.NewCouponAmountDiscount.builder() - * .discountType(CouponCreateParams.Discount.NewCouponAmountDiscount.DiscountType.AMOUNT) - * .amountDiscount(amountDiscount) - * .build() - * ``` - */ - fun newCouponAmountDiscount(amountDiscount: String) = - discount( - Discount.NewCouponAmountDiscount.builder() - .discountType( - CouponCreateParams.Discount.NewCouponAmountDiscount.DiscountType.AMOUNT - ) - .amountDiscount(amountDiscount) - .build() - ) - - /** This string can be used to redeem this coupon for a given subscription. */ - fun redemptionCode(redemptionCode: String) = - redemptionCode(JsonField.of(redemptionCode)) - - /** - * Sets [Builder.redemptionCode] to an arbitrary JSON value. - * - * You should usually call [Builder.redemptionCode] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun redemptionCode(redemptionCode: JsonField) = apply { - this.redemptionCode = redemptionCode - } - - /** - * This allows for a coupon's discount to apply for a limited time (determined in - * months); a `null` value here means "unlimited time". - */ - fun durationInMonths(durationInMonths: Long?) = - durationInMonths(JsonField.ofNullable(durationInMonths)) - - /** - * Alias for [Builder.durationInMonths]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun durationInMonths(durationInMonths: Long) = - durationInMonths(durationInMonths as Long?) - - /** - * Alias for calling [Builder.durationInMonths] with `durationInMonths.orElse(null)`. - */ - fun durationInMonths(durationInMonths: Optional) = - durationInMonths(durationInMonths.getOrNull()) - - /** - * Sets [Builder.durationInMonths] to an arbitrary JSON value. - * - * You should usually call [Builder.durationInMonths] with a well-typed [Long] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun durationInMonths(durationInMonths: JsonField) = apply { - this.durationInMonths = durationInMonths - } - - /** - * The maximum number of redemptions allowed for this coupon before it is - * exhausted;`null` here means "unlimited". - */ - fun maxRedemptions(maxRedemptions: Long?) = - maxRedemptions(JsonField.ofNullable(maxRedemptions)) - - /** - * Alias for [Builder.maxRedemptions]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun maxRedemptions(maxRedemptions: Long) = maxRedemptions(maxRedemptions as Long?) + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** Alias for calling [Builder.maxRedemptions] with `maxRedemptions.orElse(null)`. */ - fun maxRedemptions(maxRedemptions: Optional) = - maxRedemptions(maxRedemptions.getOrNull()) + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** - * Sets [Builder.maxRedemptions] to an arbitrary JSON value. - * - * You should usually call [Builder.maxRedemptions] with a well-typed [Long] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun maxRedemptions(maxRedemptions: JsonField) = apply { - this.maxRedemptions = maxRedemptions - } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .discount() - * .redemptionCode() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body( - checkRequired("discount", discount), - checkRequired("redemptionCode", redemptionCode), - durationInMonths, - maxRedemptions, - additionalProperties.toImmutable(), - ) + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } - override fun equals(other: Any?): Boolean { - if (this === other) { - return true + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) } - return /* spotless:off */ other is Body && discount == other.discount && redemptionCode == other.redemptionCode && durationInMonths == other.durationInMonths && maxRedemptions == other.maxRedemptions && additionalProperties == other.additionalProperties /* spotless:on */ + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) } - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(discount, redemptionCode, durationInMonths, maxRedemptions, additionalProperties) } - /* spotless:on */ + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } - override fun hashCode(): Int = hashCode + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - override fun toString() = - "Body{discount=$discount, redemptionCode=$redemptionCode, durationInMonths=$durationInMonths, maxRedemptions=$maxRedemptions, additionalProperties=$additionalProperties}" - } + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - fun toBuilder() = Builder().from(this) + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } - companion object { + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } /** - * Returns a mutable builder for constructing an instance of [CouponCreateParams]. + * Returns an immutable instance of [CouponCreateParams]. + * + * Further updates to this [Builder] will not mutate the returned instance. * * The following fields are required: * ```java * .discount() * .redemptionCode() * ``` + * + * @throws IllegalStateException if any required field is unset. */ - @JvmStatic fun builder() = Builder() + fun build(): CouponCreateParams = + CouponCreateParams( + body.build(), + additionalHeaders.build(), + additionalQueryParams.build(), + ) } - /** A builder for [CouponCreateParams]. */ - @NoAutoDetect - class Builder internal constructor() { - - private var body: Body.Builder = Body.builder() - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() - - @JvmSynthetic - internal fun from(couponCreateParams: CouponCreateParams) = apply { - body = couponCreateParams.body.toBuilder() - additionalHeaders = couponCreateParams.additionalHeaders.toBuilder() - additionalQueryParams = couponCreateParams.additionalQueryParams.toBuilder() - } - - fun discount(discount: Discount) = apply { body.discount(discount) } + @JvmSynthetic internal fun _body(): Body = body - /** - * Sets [Builder.discount] to an arbitrary JSON value. - * - * You should usually call [Builder.discount] with a well-typed [Discount] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun discount(discount: JsonField) = apply { body.discount(discount) } + override fun _headers(): Headers = additionalHeaders - /** - * Alias for calling [discount] with `Discount.ofNewCouponPercentage(newCouponPercentage)`. - */ - fun discount(newCouponPercentage: Discount.NewCouponPercentageDiscount) = apply { - body.discount(newCouponPercentage) - } + override fun _queryParams(): QueryParams = additionalQueryParams - /** - * Alias for calling [discount] with the following: - * ```java - * Discount.NewCouponPercentageDiscount.builder() - * .discountType(CouponCreateParams.Discount.NewCouponPercentageDiscount.DiscountType.PERCENTAGE) - * .percentageDiscount(percentageDiscount) - * .build() - * ``` - */ - fun newCouponPercentageDiscount(percentageDiscount: Double) = apply { - body.newCouponPercentageDiscount(percentageDiscount) - } + class Body + private constructor( + private val discount: JsonField, + private val redemptionCode: JsonField, + private val durationInMonths: JsonField, + private val maxRedemptions: JsonField, + private val additionalProperties: MutableMap, + ) { - /** Alias for calling [discount] with `Discount.ofNewCouponAmount(newCouponAmount)`. */ - fun discount(newCouponAmount: Discount.NewCouponAmountDiscount) = apply { - body.discount(newCouponAmount) - } + @JsonCreator + private constructor( + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("redemption_code") + @ExcludeMissing + redemptionCode: JsonField = JsonMissing.of(), + @JsonProperty("duration_in_months") + @ExcludeMissing + durationInMonths: JsonField = JsonMissing.of(), + @JsonProperty("max_redemptions") + @ExcludeMissing + maxRedemptions: JsonField = JsonMissing.of(), + ) : this(discount, redemptionCode, durationInMonths, maxRedemptions, mutableMapOf()) /** - * Alias for calling [discount] with the following: - * ```java - * Discount.NewCouponAmountDiscount.builder() - * .discountType(CouponCreateParams.Discount.NewCouponAmountDiscount.DiscountType.AMOUNT) - * .amountDiscount(amountDiscount) - * .build() - * ``` + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun newCouponAmountDiscount(amountDiscount: String) = apply { - body.newCouponAmountDiscount(amountDiscount) - } - - /** This string can be used to redeem this coupon for a given subscription. */ - fun redemptionCode(redemptionCode: String) = apply { body.redemptionCode(redemptionCode) } + fun discount(): Discount = discount.getRequired("discount") /** - * Sets [Builder.redemptionCode] to an arbitrary JSON value. + * This string can be used to redeem this coupon for a given subscription. * - * You should usually call [Builder.redemptionCode] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun redemptionCode(redemptionCode: JsonField) = apply { - body.redemptionCode(redemptionCode) - } + fun redemptionCode(): String = redemptionCode.getRequired("redemption_code") /** * This allows for a coupon's discount to apply for a limited time (determined in months); a * `null` value here means "unlimited time". + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun durationInMonths(durationInMonths: Long?) = apply { - body.durationInMonths(durationInMonths) - } + fun durationInMonths(): Optional = + Optional.ofNullable(durationInMonths.getNullable("duration_in_months")) /** - * Alias for [Builder.durationInMonths]. + * The maximum number of redemptions allowed for this coupon before it is exhausted;`null` + * here means "unlimited". * - * This unboxed primitive overload exists for backwards compatibility. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun durationInMonths(durationInMonths: Long) = durationInMonths(durationInMonths as Long?) - - /** Alias for calling [Builder.durationInMonths] with `durationInMonths.orElse(null)`. */ - fun durationInMonths(durationInMonths: Optional) = - durationInMonths(durationInMonths.getOrNull()) + fun maxRedemptions(): Optional = + Optional.ofNullable(maxRedemptions.getNullable("max_redemptions")) /** - * Sets [Builder.durationInMonths] to an arbitrary JSON value. + * Returns the raw JSON value of [discount]. * - * You should usually call [Builder.durationInMonths] with a well-typed [Long] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [discount], this method doesn't throw if the JSON field has an unexpected type. */ - fun durationInMonths(durationInMonths: JsonField) = apply { - body.durationInMonths(durationInMonths) - } + @JsonProperty("discount") @ExcludeMissing fun _discount(): JsonField = discount /** - * The maximum number of redemptions allowed for this coupon before it is exhausted;`null` - * here means "unlimited". + * Returns the raw JSON value of [redemptionCode]. + * + * Unlike [redemptionCode], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun maxRedemptions(maxRedemptions: Long?) = apply { body.maxRedemptions(maxRedemptions) } + @JsonProperty("redemption_code") + @ExcludeMissing + fun _redemptionCode(): JsonField = redemptionCode /** - * Alias for [Builder.maxRedemptions]. + * Returns the raw JSON value of [durationInMonths]. * - * This unboxed primitive overload exists for backwards compatibility. + * Unlike [durationInMonths], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun maxRedemptions(maxRedemptions: Long) = maxRedemptions(maxRedemptions as Long?) - - /** Alias for calling [Builder.maxRedemptions] with `maxRedemptions.orElse(null)`. */ - fun maxRedemptions(maxRedemptions: Optional) = - maxRedemptions(maxRedemptions.getOrNull()) + @JsonProperty("duration_in_months") + @ExcludeMissing + fun _durationInMonths(): JsonField = durationInMonths /** - * Sets [Builder.maxRedemptions] to an arbitrary JSON value. + * Returns the raw JSON value of [maxRedemptions]. * - * You should usually call [Builder.maxRedemptions] with a well-typed [Long] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. + * Unlike [maxRedemptions], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun maxRedemptions(maxRedemptions: JsonField) = apply { - body.maxRedemptions(maxRedemptions) - } + @JsonProperty("max_redemptions") + @ExcludeMissing + fun _maxRedemptions(): JsonField = maxRedemptions - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { - body.additionalProperties(additionalBodyProperties) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } - fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - body.putAdditionalProperty(key, value) + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .discount() + * .redemptionCode() + * ``` + */ + @JvmStatic fun builder() = Builder() } - fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = - apply { - body.putAllAdditionalProperties(additionalBodyProperties) + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var discount: JsonField? = null + private var redemptionCode: JsonField? = null + private var durationInMonths: JsonField = JsonMissing.of() + private var maxRedemptions: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + discount = body.discount + redemptionCode = body.redemptionCode + durationInMonths = body.durationInMonths + maxRedemptions = body.maxRedemptions + additionalProperties = body.additionalProperties.toMutableMap() } - fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + fun discount(discount: Discount) = discount(JsonField.of(discount)) - fun removeAllAdditionalBodyProperties(keys: Set) = apply { - body.removeAllAdditionalProperties(keys) - } + /** + * Sets [Builder.discount] to an arbitrary JSON value. + * + * You should usually call [Builder.discount] with a well-typed [Discount] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun discount(discount: JsonField) = apply { this.discount = discount } - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** + * Alias for calling [discount] with + * `Discount.ofNewCouponPercentage(newCouponPercentage)`. + */ + fun discount(newCouponPercentage: Discount.NewCouponPercentageDiscount) = + discount(Discount.ofNewCouponPercentage(newCouponPercentage)) - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** + * Alias for calling [discount] with the following: + * ```java + * Discount.NewCouponPercentageDiscount.builder() + * .discountType(CouponCreateParams.Discount.NewCouponPercentageDiscount.DiscountType.PERCENTAGE) + * .percentageDiscount(percentageDiscount) + * .build() + * ``` + */ + fun newCouponPercentageDiscount(percentageDiscount: Double) = + discount( + Discount.NewCouponPercentageDiscount.builder() + .discountType( + CouponCreateParams.Discount.NewCouponPercentageDiscount.DiscountType + .PERCENTAGE + ) + .percentageDiscount(percentageDiscount) + .build() + ) - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } + /** Alias for calling [discount] with `Discount.ofNewCouponAmount(newCouponAmount)`. */ + fun discount(newCouponAmount: Discount.NewCouponAmountDiscount) = + discount(Discount.ofNewCouponAmount(newCouponAmount)) + + /** + * Alias for calling [discount] with the following: + * ```java + * Discount.NewCouponAmountDiscount.builder() + * .discountType(CouponCreateParams.Discount.NewCouponAmountDiscount.DiscountType.AMOUNT) + * .amountDiscount(amountDiscount) + * .build() + * ``` + */ + fun newCouponAmountDiscount(amountDiscount: String) = + discount( + Discount.NewCouponAmountDiscount.builder() + .discountType( + CouponCreateParams.Discount.NewCouponAmountDiscount.DiscountType.AMOUNT + ) + .amountDiscount(amountDiscount) + .build() + ) + + /** This string can be used to redeem this coupon for a given subscription. */ + fun redemptionCode(redemptionCode: String) = + redemptionCode(JsonField.of(redemptionCode)) + + /** + * Sets [Builder.redemptionCode] to an arbitrary JSON value. + * + * You should usually call [Builder.redemptionCode] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun redemptionCode(redemptionCode: JsonField) = apply { + this.redemptionCode = redemptionCode + } + + /** + * This allows for a coupon's discount to apply for a limited time (determined in + * months); a `null` value here means "unlimited time". + */ + fun durationInMonths(durationInMonths: Long?) = + durationInMonths(JsonField.ofNullable(durationInMonths)) - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } + /** + * Alias for [Builder.durationInMonths]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun durationInMonths(durationInMonths: Long) = + durationInMonths(durationInMonths as Long?) - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** + * Alias for calling [Builder.durationInMonths] with `durationInMonths.orElse(null)`. + */ + fun durationInMonths(durationInMonths: Optional) = + durationInMonths(durationInMonths.getOrNull()) - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** + * Sets [Builder.durationInMonths] to an arbitrary JSON value. + * + * You should usually call [Builder.durationInMonths] with a well-typed [Long] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun durationInMonths(durationInMonths: JsonField) = apply { + this.durationInMonths = durationInMonths + } - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } + /** + * The maximum number of redemptions allowed for this coupon before it is + * exhausted;`null` here means "unlimited". + */ + fun maxRedemptions(maxRedemptions: Long?) = + maxRedemptions(JsonField.ofNullable(maxRedemptions)) - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } + /** + * Alias for [Builder.maxRedemptions]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun maxRedemptions(maxRedemptions: Long) = maxRedemptions(maxRedemptions as Long?) - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** Alias for calling [Builder.maxRedemptions] with `maxRedemptions.orElse(null)`. */ + fun maxRedemptions(maxRedemptions: Optional) = + maxRedemptions(maxRedemptions.getOrNull()) - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** + * Sets [Builder.maxRedemptions] to an arbitrary JSON value. + * + * You should usually call [Builder.maxRedemptions] with a well-typed [Long] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun maxRedemptions(maxRedemptions: JsonField) = apply { + this.maxRedemptions = maxRedemptions + } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .discount() + * .redemptionCode() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body( + checkRequired("discount", discount), + checkRequired("redemptionCode", redemptionCode), + durationInMonths, + maxRedemptions, + additionalProperties.toMutableMap(), + ) } - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } + private var validated: Boolean = false - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) + fun validate(): Body = apply { + if (validated) { + return@apply } - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) + discount().validate() + redemptionCode() + durationInMonths() + maxRedemptions() + validated = true } - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + return /* spotless:off */ other is Body && discount == other.discount && redemptionCode == other.redemptionCode && durationInMonths == other.durationInMonths && maxRedemptions == other.maxRedemptions && additionalProperties == other.additionalProperties /* spotless:on */ } - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(discount, redemptionCode, durationInMonths, maxRedemptions, additionalProperties) } + /* spotless:on */ - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) - } + override fun hashCode(): Int = hashCode - /** - * Returns an immutable instance of [CouponCreateParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .discount() - * .redemptionCode() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): CouponCreateParams = - CouponCreateParams( - body.build(), - additionalHeaders.build(), - additionalQueryParams.build(), - ) + override fun toString() = + "Body{discount=$discount, redemptionCode=$redemptionCode, durationInMonths=$durationInMonths, maxRedemptions=$maxRedemptions, additionalProperties=$additionalProperties}" } @JsonDeserialize(using = Discount.Deserializer::class) @@ -905,20 +913,23 @@ private constructor( } } - @NoAutoDetect class NewCouponPercentageDiscount - @JsonCreator private constructor( - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val discountType: JsonField, + private val percentageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + ) : this(discountType, percentageDiscount, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -953,21 +964,15 @@ private constructor( @ExcludeMissing fun _percentageDiscount(): JsonField = percentageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewCouponPercentageDiscount = apply { - if (validated) { - return@apply - } - - discountType() - percentageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1069,10 +1074,22 @@ private constructor( NewCouponPercentageDiscount( checkRequired("discountType", discountType), checkRequired("percentageDiscount", percentageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewCouponPercentageDiscount = apply { + if (validated) { + return@apply + } + + discountType() + percentageDiscount() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -1191,20 +1208,23 @@ private constructor( "NewCouponPercentageDiscount{discountType=$discountType, percentageDiscount=$percentageDiscount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewCouponAmountDiscount - @JsonCreator private constructor( - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amountDiscount: JsonField, + private val discountType: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + ) : this(amountDiscount, discountType, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -1239,21 +1259,15 @@ private constructor( @ExcludeMissing fun _discountType(): JsonField = discountType + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewCouponAmountDiscount = apply { - if (validated) { - return@apply - } - - amountDiscount() - discountType() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1354,10 +1368,22 @@ private constructor( NewCouponAmountDiscount( checkRequired("amountDiscount", amountDiscount), checkRequired("discountType", discountType), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewCouponAmountDiscount = apply { + if (validated) { + return@apply + } + + amountDiscount() + discountType() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponFetchParams.kt index 936a109d..afb3aebc 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponFetchParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -26,16 +25,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> couponId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - fun toBuilder() = Builder().from(this) companion object { @@ -52,7 +41,6 @@ private constructor( } /** A builder for [CouponFetchParams]. */ - @NoAutoDetect class Builder internal constructor() { private var couponId: String? = null @@ -186,6 +174,16 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> couponId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponListPage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponListPage.kt index a8c51288..812a9001 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponListPage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponListPage.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.blocking.CouponService +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.stream.Stream @@ -87,17 +85,19 @@ private constructor( CouponListPage(couponsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -110,9 +110,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -181,7 +187,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponListPageAsync.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponListPageAsync.kt index e1533352..49150cde 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponListPageAsync.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponListPageAsync.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.async.CouponServiceAsync +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.concurrent.CompletableFuture @@ -89,17 +87,19 @@ private constructor( CouponListPageAsync(couponsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -112,9 +112,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -183,7 +189,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponListParams.kt index 006d3abe..3372e24f 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponListParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams @@ -46,19 +45,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - cursor?.let { put("cursor", it) } - limit?.let { put("limit", it.toString()) } - redemptionCode?.let { put("redemption_code", it) } - showArchived?.let { put("show_archived", it.toString()) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -70,7 +56,6 @@ private constructor( } /** A builder for [CouponListParams]. */ - @NoAutoDetect class Builder internal constructor() { private var cursor: String? = null @@ -248,6 +233,19 @@ private constructor( ) } + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + cursor?.let { put("cursor", it) } + limit?.let { put("limit", it.toString()) } + redemptionCode?.let { put("redemption_code", it) } + showArchived?.let { put("show_archived", it.toString()) } + putAll(additionalQueryParams) + } + .build() + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponSubscriptionListPage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponSubscriptionListPage.kt index 3c405560..22529703 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponSubscriptionListPage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponSubscriptionListPage.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.blocking.coupons.SubscriptionService +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.stream.Stream @@ -89,17 +87,19 @@ private constructor( ) = CouponSubscriptionListPage(subscriptionsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -112,9 +112,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -186,7 +192,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponSubscriptionListPageAsync.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponSubscriptionListPageAsync.kt index f928b59b..0199a125 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponSubscriptionListPageAsync.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponSubscriptionListPageAsync.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.async.coupons.SubscriptionServiceAsync +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.concurrent.CompletableFuture @@ -91,17 +89,19 @@ private constructor( ) = CouponSubscriptionListPageAsync(subscriptionsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -114,9 +114,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -188,7 +194,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponSubscriptionListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponSubscriptionListParams.kt index 434d20f8..a3b3be8d 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponSubscriptionListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponSubscriptionListParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -41,23 +40,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> couponId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - cursor?.let { put("cursor", it) } - limit?.let { put("limit", it.toString()) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -74,7 +56,6 @@ private constructor( } /** A builder for [CouponSubscriptionListParams]. */ - @NoAutoDetect class Builder internal constructor() { private var couponId: String? = null @@ -236,6 +217,23 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> couponId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + cursor?.let { put("cursor", it) } + limit?.let { put("limit", it.toString()) } + putAll(additionalQueryParams) + } + .build() + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNote.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNote.kt index e29476c5..73704c29 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNote.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNote.kt @@ -11,13 +11,12 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -26,53 +25,81 @@ import kotlin.jvm.optionals.getOrNull * The [Credit Note](/invoicing/credit-notes) resource represents a credit that has been applied to * a particular invoice. */ -@NoAutoDetect class CreditNote -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_note_number") - @ExcludeMissing - private val creditNoteNumber: JsonField = JsonMissing.of(), - @JsonProperty("credit_note_pdf") - @ExcludeMissing - private val creditNotePdf: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("invoice_id") - @ExcludeMissing - private val invoiceId: JsonField = JsonMissing.of(), - @JsonProperty("line_items") - @ExcludeMissing - private val lineItems: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount_adjustment") - @ExcludeMissing - private val maximumAmountAdjustment: JsonField = JsonMissing.of(), - @JsonProperty("memo") @ExcludeMissing private val memo: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount_refunded") - @ExcludeMissing - private val minimumAmountRefunded: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonProperty("subtotal") - @ExcludeMissing - private val subtotal: JsonField = JsonMissing.of(), - @JsonProperty("total") @ExcludeMissing private val total: JsonField = JsonMissing.of(), - @JsonProperty("type") @ExcludeMissing private val type: JsonField = JsonMissing.of(), - @JsonProperty("voided_at") - @ExcludeMissing - private val voidedAt: JsonField = JsonMissing.of(), - @JsonProperty("discounts") - @ExcludeMissing - private val discounts: JsonField> = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val createdAt: JsonField, + private val creditNoteNumber: JsonField, + private val creditNotePdf: JsonField, + private val customer: JsonField, + private val invoiceId: JsonField, + private val lineItems: JsonField>, + private val maximumAmountAdjustment: JsonField, + private val memo: JsonField, + private val minimumAmountRefunded: JsonField, + private val reason: JsonField, + private val subtotal: JsonField, + private val total: JsonField, + private val type: JsonField, + private val voidedAt: JsonField, + private val discounts: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_note_number") + @ExcludeMissing + creditNoteNumber: JsonField = JsonMissing.of(), + @JsonProperty("credit_note_pdf") + @ExcludeMissing + creditNotePdf: JsonField = JsonMissing.of(), + @JsonProperty("customer") @ExcludeMissing customer: JsonField = JsonMissing.of(), + @JsonProperty("invoice_id") @ExcludeMissing invoiceId: JsonField = JsonMissing.of(), + @JsonProperty("line_items") + @ExcludeMissing + lineItems: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount_adjustment") + @ExcludeMissing + maximumAmountAdjustment: JsonField = JsonMissing.of(), + @JsonProperty("memo") @ExcludeMissing memo: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount_refunded") + @ExcludeMissing + minimumAmountRefunded: JsonField = JsonMissing.of(), + @JsonProperty("reason") @ExcludeMissing reason: JsonField = JsonMissing.of(), + @JsonProperty("subtotal") @ExcludeMissing subtotal: JsonField = JsonMissing.of(), + @JsonProperty("total") @ExcludeMissing total: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + @JsonProperty("voided_at") + @ExcludeMissing + voidedAt: JsonField = JsonMissing.of(), + @JsonProperty("discounts") + @ExcludeMissing + discounts: JsonField> = JsonMissing.of(), + ) : this( + id, + createdAt, + creditNoteNumber, + creditNotePdf, + customer, + invoiceId, + lineItems, + maximumAmountAdjustment, + memo, + minimumAmountRefunded, + reason, + subtotal, + total, + type, + voidedAt, + discounts, + mutableMapOf(), + ) + /** * The Orb id of this credit note. * @@ -329,35 +356,15 @@ private constructor( @ExcludeMissing fun _discounts(): JsonField> = discounts + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditNote = apply { - if (validated) { - return@apply - } - - id() - createdAt() - creditNoteNumber() - creditNotePdf() - customer().validate() - invoiceId() - lineItems().forEach { it.validate() } - maximumAmountAdjustment().ifPresent { it.validate() } - memo() - minimumAmountRefunded() - reason() - subtotal() - total() - type() - voidedAt() - discounts().ifPresent { it.forEach { it.validate() } } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -744,22 +751,51 @@ private constructor( checkRequired("type", type), checkRequired("voidedAt", voidedAt), (discounts ?: JsonMissing.of()).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): CreditNote = apply { + if (validated) { + return@apply + } + + id() + createdAt() + creditNoteNumber() + creditNotePdf() + customer().validate() + invoiceId() + lineItems().forEach { it.validate() } + maximumAmountAdjustment().ifPresent { it.validate() } + memo() + minimumAmountRefunded() + reason() + subtotal() + total() + type() + voidedAt() + discounts().ifPresent { it.forEach { it.validate() } } + validated = true + } + class Customer - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -790,21 +826,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -904,10 +934,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -926,36 +968,49 @@ private constructor( "Customer{id=$id, externalCustomerId=$externalCustomerId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class LineItem - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("subtotal") - @ExcludeMissing - private val subtotal: JsonField = JsonMissing.of(), - @JsonProperty("tax_amounts") - @ExcludeMissing - private val taxAmounts: JsonField> = JsonMissing.of(), - @JsonProperty("discounts") - @ExcludeMissing - private val discounts: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val itemId: JsonField, + private val name: JsonField, + private val quantity: JsonField, + private val subtotal: JsonField, + private val taxAmounts: JsonField>, + private val discounts: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("item_id") @ExcludeMissing itemId: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("subtotal") + @ExcludeMissing + subtotal: JsonField = JsonMissing.of(), + @JsonProperty("tax_amounts") + @ExcludeMissing + taxAmounts: JsonField> = JsonMissing.of(), + @JsonProperty("discounts") + @ExcludeMissing + discounts: JsonField> = JsonMissing.of(), + ) : this( + id, + amount, + itemId, + name, + quantity, + subtotal, + taxAmounts, + discounts, + mutableMapOf(), + ) + /** * The Orb id of this resource. * @@ -1081,27 +1136,15 @@ private constructor( @ExcludeMissing fun _discounts(): JsonField> = discounts + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): LineItem = apply { - if (validated) { - return@apply - } - - id() - amount() - itemId() - name() - quantity() - subtotal() - taxAmounts().forEach { it.validate() } - discounts().ifPresent { it.forEach { it.validate() } } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1331,27 +1374,49 @@ private constructor( checkRequired("subtotal", subtotal), checkRequired("taxAmounts", taxAmounts).map { it.toImmutable() }, (discounts ?: JsonMissing.of()).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): LineItem = apply { + if (validated) { + return@apply + } + + id() + amount() + itemId() + name() + quantity() + subtotal() + taxAmounts().forEach { it.validate() } + discounts().ifPresent { it.forEach { it.validate() } } + validated = true + } + class TaxAmount - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("tax_rate_description") - @ExcludeMissing - private val taxRateDescription: JsonField = JsonMissing.of(), - @JsonProperty("tax_rate_percentage") - @ExcludeMissing - private val taxRatePercentage: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val taxRateDescription: JsonField, + private val taxRatePercentage: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("tax_rate_description") + @ExcludeMissing + taxRateDescription: JsonField = JsonMissing.of(), + @JsonProperty("tax_rate_percentage") + @ExcludeMissing + taxRatePercentage: JsonField = JsonMissing.of(), + ) : this(amount, taxRateDescription, taxRatePercentage, mutableMapOf()) + /** * The amount of additional tax incurred by this tax rate. * @@ -1407,22 +1472,15 @@ private constructor( @ExcludeMissing fun _taxRatePercentage(): JsonField = taxRatePercentage + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TaxAmount = apply { - if (validated) { - return@apply - } - - amount() - taxRateDescription() - taxRatePercentage() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1547,10 +1605,23 @@ private constructor( checkRequired("amount", amount), checkRequired("taxRateDescription", taxRateDescription), checkRequired("taxRatePercentage", taxRatePercentage), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): TaxAmount = apply { + if (validated) { + return@apply + } + + amount() + taxRateDescription() + taxRatePercentage() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -1569,35 +1640,48 @@ private constructor( "TaxAmount{amount=$amount, taxRateDescription=$taxRateDescription, taxRatePercentage=$taxRatePercentage, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Discount - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount_applied") - @ExcludeMissing - private val amountApplied: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amountApplied: JsonField, + private val appliesToPriceIds: JsonField>, + private val discountType: JsonField, + private val percentageDiscount: JsonField, + private val amountDiscount: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount_applied") + @ExcludeMissing + amountApplied: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("reason") @ExcludeMissing reason: JsonField = JsonMissing.of(), + ) : this( + id, + amountApplied, + appliesToPriceIds, + discountType, + percentageDiscount, + amountDiscount, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -1711,26 +1795,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Discount = apply { - if (validated) { - return@apply - } - - id() - amountApplied() - appliesToPriceIds() - discountType() - percentageDiscount() - amountDiscount() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1937,10 +2010,27 @@ private constructor( checkRequired("percentageDiscount", percentageDiscount), amountDiscount, reason, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Discount = apply { + if (validated) { + return@apply + } + + id() + amountApplied() + appliesToPriceIds() + discountType() + percentageDiscount() + amountDiscount() + reason() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2084,29 +2174,40 @@ private constructor( } /** The maximum amount applied on the original invoice */ - @NoAutoDetect class MaximumAmountAdjustment - @JsonCreator private constructor( - @JsonProperty("amount_applied") - @ExcludeMissing - private val amountApplied: JsonField = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_prices") - @ExcludeMissing - private val appliesToPrices: JsonField> = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amountApplied: JsonField, + private val discountType: JsonField, + private val percentageDiscount: JsonField, + private val appliesToPrices: JsonField>, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount_applied") + @ExcludeMissing + amountApplied: JsonField = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_prices") + @ExcludeMissing + appliesToPrices: JsonField> = JsonMissing.of(), + @JsonProperty("reason") @ExcludeMissing reason: JsonField = JsonMissing.of(), + ) : this( + amountApplied, + discountType, + percentageDiscount, + appliesToPrices, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -2185,24 +2286,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MaximumAmountAdjustment = apply { - if (validated) { - return@apply - } - - amountApplied() - discountType() - percentageDiscount() - appliesToPrices().ifPresent { it.forEach { it.validate() } } - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2365,10 +2457,25 @@ private constructor( checkRequired("percentageDiscount", percentageDiscount), (appliesToPrices ?: JsonMissing.of()).map { it.toImmutable() }, reason, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MaximumAmountAdjustment = apply { + if (validated) { + return@apply + } + + amountApplied() + discountType() + percentageDiscount() + appliesToPrices().ifPresent { it.forEach { it.validate() } } + reason() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2465,20 +2572,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class AppliesToPrice - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2507,21 +2613,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AppliesToPrice = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2614,10 +2714,22 @@ private constructor( AppliesToPrice( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AppliesToPrice = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2860,29 +2972,40 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class Discount - @JsonCreator private constructor( - @JsonProperty("amount_applied") - @ExcludeMissing - private val amountApplied: JsonField = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_prices") - @ExcludeMissing - private val appliesToPrices: JsonField> = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amountApplied: JsonField, + private val discountType: JsonField, + private val percentageDiscount: JsonField, + private val appliesToPrices: JsonField>, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount_applied") + @ExcludeMissing + amountApplied: JsonField = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_prices") + @ExcludeMissing + appliesToPrices: JsonField> = JsonMissing.of(), + @JsonProperty("reason") @ExcludeMissing reason: JsonField = JsonMissing.of(), + ) : this( + amountApplied, + discountType, + percentageDiscount, + appliesToPrices, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -2961,24 +3084,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Discount = apply { - if (validated) { - return@apply - } - - amountApplied() - discountType() - percentageDiscount() - appliesToPrices().ifPresent { it.forEach { it.validate() } } - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3141,10 +3255,25 @@ private constructor( checkRequired("percentageDiscount", percentageDiscount), (appliesToPrices ?: JsonMissing.of()).map { it.toImmutable() }, reason, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Discount = apply { + if (validated) { + return@apply + } + + amountApplied() + discountType() + percentageDiscount() + appliesToPrices().ifPresent { it.forEach { it.validate() } } + reason() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3241,20 +3370,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class AppliesToPrice - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3283,21 +3411,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AppliesToPrice = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3390,10 +3512,22 @@ private constructor( AppliesToPrice( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AppliesToPrice = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteCreateParams.kt index a143b305..a44f7e88 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteCreateParams.kt @@ -11,15 +11,14 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -81,235 +80,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("line_items") - @ExcludeMissing - private val lineItems: JsonField> = JsonMissing.of(), - @JsonProperty("memo") - @ExcludeMissing - private val memo: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun lineItems(): List = lineItems.getRequired("line_items") - - /** - * An optional memo to attach to the credit note. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun memo(): Optional = Optional.ofNullable(memo.getNullable("memo")) - - /** - * An optional reason for the credit note. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun reason(): Optional = Optional.ofNullable(reason.getNullable("reason")) - - /** - * Returns the raw JSON value of [lineItems]. - * - * Unlike [lineItems], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("line_items") - @ExcludeMissing - fun _lineItems(): JsonField> = lineItems - - /** - * Returns the raw JSON value of [memo]. - * - * Unlike [memo], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("memo") @ExcludeMissing fun _memo(): JsonField = memo - - /** - * Returns the raw JSON value of [reason]. - * - * Unlike [reason], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - lineItems().forEach { it.validate() } - memo() - reason() - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .lineItems() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var lineItems: JsonField>? = null - private var memo: JsonField = JsonMissing.of() - private var reason: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - lineItems = body.lineItems.map { it.toMutableList() } - memo = body.memo - reason = body.reason - additionalProperties = body.additionalProperties.toMutableMap() - } - - fun lineItems(lineItems: List) = lineItems(JsonField.of(lineItems)) - - /** - * Sets [Builder.lineItems] to an arbitrary JSON value. - * - * You should usually call [Builder.lineItems] with a well-typed `List` value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun lineItems(lineItems: JsonField>) = apply { - this.lineItems = lineItems.map { it.toMutableList() } - } - - /** - * Adds a single [LineItem] to [lineItems]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addLineItem(lineItem: LineItem) = apply { - lineItems = - (lineItems ?: JsonField.of(mutableListOf())).also { - checkKnown("lineItems", it).add(lineItem) - } - } - - /** An optional memo to attach to the credit note. */ - fun memo(memo: String?) = memo(JsonField.ofNullable(memo)) - - /** Alias for calling [Builder.memo] with `memo.orElse(null)`. */ - fun memo(memo: Optional) = memo(memo.getOrNull()) - - /** - * Sets [Builder.memo] to an arbitrary JSON value. - * - * You should usually call [Builder.memo] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun memo(memo: JsonField) = apply { this.memo = memo } - - /** An optional reason for the credit note. */ - fun reason(reason: Reason?) = reason(JsonField.ofNullable(reason)) - - /** Alias for calling [Builder.reason] with `reason.orElse(null)`. */ - fun reason(reason: Optional) = reason(reason.getOrNull()) - - /** - * Sets [Builder.reason] to an arbitrary JSON value. - * - * You should usually call [Builder.reason] with a well-typed [Reason] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun reason(reason: JsonField) = apply { this.reason = reason } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .lineItems() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body( - checkRequired("lineItems", lineItems).map { it.toImmutable() }, - memo, - reason, - additionalProperties.toImmutable(), - ) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && lineItems == other.lineItems && memo == other.memo && reason == other.reason && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(lineItems, memo, reason, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{lineItems=$lineItems, memo=$memo, reason=$reason, additionalProperties=$additionalProperties}" - } - fun toBuilder() = Builder().from(this) companion object { @@ -326,7 +96,6 @@ private constructor( } /** A builder for [CreditNoteCreateParams]. */ - @NoAutoDetect class Builder internal constructor() { private var body: Body.Builder = Body.builder() @@ -523,20 +292,256 @@ private constructor( ) } - @NoAutoDetect - class LineItem - @JsonCreator + @JvmSynthetic internal fun _body(): Body = body + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("invoice_line_item_id") + private val lineItems: JsonField>, + private val memo: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("line_items") + @ExcludeMissing + lineItems: JsonField> = JsonMissing.of(), + @JsonProperty("memo") @ExcludeMissing memo: JsonField = JsonMissing.of(), + @JsonProperty("reason") @ExcludeMissing reason: JsonField = JsonMissing.of(), + ) : this(lineItems, memo, reason, mutableMapOf()) + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun lineItems(): List = lineItems.getRequired("line_items") + + /** + * An optional memo to attach to the credit note. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun memo(): Optional = Optional.ofNullable(memo.getNullable("memo")) + + /** + * An optional reason for the credit note. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun reason(): Optional = Optional.ofNullable(reason.getNullable("reason")) + + /** + * Returns the raw JSON value of [lineItems]. + * + * Unlike [lineItems], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("line_items") @ExcludeMissing - private val invoiceLineItemId: JsonField = JsonMissing.of(), + fun _lineItems(): JsonField> = lineItems + + /** + * Returns the raw JSON value of [memo]. + * + * Unlike [memo], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("memo") @ExcludeMissing fun _memo(): JsonField = memo + + /** + * Returns the raw JSON value of [reason]. + * + * Unlike [reason], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .lineItems() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var lineItems: JsonField>? = null + private var memo: JsonField = JsonMissing.of() + private var reason: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + lineItems = body.lineItems.map { it.toMutableList() } + memo = body.memo + reason = body.reason + additionalProperties = body.additionalProperties.toMutableMap() + } + + fun lineItems(lineItems: List) = lineItems(JsonField.of(lineItems)) + + /** + * Sets [Builder.lineItems] to an arbitrary JSON value. + * + * You should usually call [Builder.lineItems] with a well-typed `List` value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun lineItems(lineItems: JsonField>) = apply { + this.lineItems = lineItems.map { it.toMutableList() } + } + + /** + * Adds a single [LineItem] to [lineItems]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addLineItem(lineItem: LineItem) = apply { + lineItems = + (lineItems ?: JsonField.of(mutableListOf())).also { + checkKnown("lineItems", it).add(lineItem) + } + } + + /** An optional memo to attach to the credit note. */ + fun memo(memo: String?) = memo(JsonField.ofNullable(memo)) + + /** Alias for calling [Builder.memo] with `memo.orElse(null)`. */ + fun memo(memo: Optional) = memo(memo.getOrNull()) + + /** + * Sets [Builder.memo] to an arbitrary JSON value. + * + * You should usually call [Builder.memo] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun memo(memo: JsonField) = apply { this.memo = memo } + + /** An optional reason for the credit note. */ + fun reason(reason: Reason?) = reason(JsonField.ofNullable(reason)) + + /** Alias for calling [Builder.reason] with `reason.orElse(null)`. */ + fun reason(reason: Optional) = reason(reason.getOrNull()) + + /** + * Sets [Builder.reason] to an arbitrary JSON value. + * + * You should usually call [Builder.reason] with a well-typed [Reason] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun reason(reason: JsonField) = apply { this.reason = reason } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .lineItems() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body( + checkRequired("lineItems", lineItems).map { it.toImmutable() }, + memo, + reason, + additionalProperties.toMutableMap(), + ) + } + + private var validated: Boolean = false + + fun validate(): Body = apply { + if (validated) { + return@apply + } + + lineItems().forEach { it.validate() } + memo() + reason() + validated = true + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Body && lineItems == other.lineItems && memo == other.memo && reason == other.reason && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(lineItems, memo, reason, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{lineItems=$lineItems, memo=$memo, reason=$reason, additionalProperties=$additionalProperties}" + } + + class LineItem + private constructor( + private val amount: JsonField, + private val invoiceLineItemId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("invoice_line_item_id") + @ExcludeMissing + invoiceLineItemId: JsonField = JsonMissing.of(), + ) : this(amount, invoiceLineItemId, mutableMapOf()) + /** * The total amount in the invoice's currency to credit this line item. * @@ -570,21 +575,15 @@ private constructor( @ExcludeMissing fun _invoiceLineItemId(): JsonField = invoiceLineItemId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): LineItem = apply { - if (validated) { - return@apply - } - - amount() - invoiceLineItemId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -679,10 +678,22 @@ private constructor( LineItem( checkRequired("amount", amount), checkRequired("invoiceLineItemId", invoiceLineItemId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): LineItem = apply { + if (validated) { + return@apply + } + + amount() + invoiceLineItemId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteFetchParams.kt index b2772a23..04c0d080 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteFetchParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -26,16 +25,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> creditNoteId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - fun toBuilder() = Builder().from(this) companion object { @@ -52,7 +41,6 @@ private constructor( } /** A builder for [CreditNoteFetchParams]. */ - @NoAutoDetect class Builder internal constructor() { private var creditNoteId: String? = null @@ -186,6 +174,16 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> creditNoteId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteListPage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteListPage.kt index 4d6a39cc..e61aa839 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteListPage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteListPage.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.blocking.CreditNoteService +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.stream.Stream @@ -88,17 +86,19 @@ private constructor( ) = CreditNoteListPage(creditNotesService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -111,9 +111,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -182,7 +188,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteListPageAsync.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteListPageAsync.kt index 509b9ba4..0b6c9f7f 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteListPageAsync.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteListPageAsync.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.async.CreditNoteServiceAsync +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.concurrent.CompletableFuture @@ -90,17 +88,19 @@ private constructor( ) = CreditNoteListPageAsync(creditNotesService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -113,9 +113,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -186,7 +192,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteListParams.kt index dee3ba45..ae64cd52 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteListParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams @@ -50,29 +49,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - createdAtGt?.let { - put("created_at[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtGte?.let { - put("created_at[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtLt?.let { - put("created_at[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtLte?.let { - put("created_at[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - cursor?.let { put("cursor", it) } - limit?.let { put("limit", it.toString()) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -84,7 +60,6 @@ private constructor( } /** A builder for [CreditNoteListParams]. */ - @NoAutoDetect class Builder internal constructor() { private var createdAtGt: OffsetDateTime? = null @@ -270,6 +245,29 @@ private constructor( ) } + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + createdAtGt?.let { + put("created_at[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtGte?.let { + put("created_at[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtLt?.let { + put("created_at[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtLte?.let { + put("created_at[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + cursor?.let { put("cursor", it) } + limit?.let { put("limit", it.toString()) } + putAll(additionalQueryParams) + } + .build() + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/Customer.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/Customer.kt index 547b442e..e021a4fa 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/Customer.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/Customer.kt @@ -11,13 +11,12 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -40,72 +39,109 @@ import kotlin.jvm.optionals.getOrNull * timezone. See [Timezone localization](/essentials/timezones) for information on what this * timezone parameter influences within Orb. */ -@NoAutoDetect class Customer -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("additional_emails") - @ExcludeMissing - private val additionalEmails: JsonField> = JsonMissing.of(), - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("balance") - @ExcludeMissing - private val balance: JsonField = JsonMissing.of(), - @JsonProperty("billing_address") - @ExcludeMissing - private val billingAddress: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("email") @ExcludeMissing private val email: JsonField = JsonMissing.of(), - @JsonProperty("email_delivery") - @ExcludeMissing - private val emailDelivery: JsonField = JsonMissing.of(), - @JsonProperty("exempt_from_automated_tax") - @ExcludeMissing - private val exemptFromAutomatedTax: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonProperty("hierarchy") - @ExcludeMissing - private val hierarchy: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("name") @ExcludeMissing private val name: JsonField = JsonMissing.of(), - @JsonProperty("payment_provider") - @ExcludeMissing - private val paymentProvider: JsonField = JsonMissing.of(), - @JsonProperty("payment_provider_id") - @ExcludeMissing - private val paymentProviderId: JsonField = JsonMissing.of(), - @JsonProperty("portal_url") - @ExcludeMissing - private val portalUrl: JsonField = JsonMissing.of(), - @JsonProperty("shipping_address") - @ExcludeMissing - private val shippingAddress: JsonField = JsonMissing.of(), - @JsonProperty("tax_id") @ExcludeMissing private val taxId: JsonField = JsonMissing.of(), - @JsonProperty("timezone") - @ExcludeMissing - private val timezone: JsonField = JsonMissing.of(), - @JsonProperty("accounting_sync_configuration") - @ExcludeMissing - private val accountingSyncConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("reporting_configuration") - @ExcludeMissing - private val reportingConfiguration: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalEmails: JsonField>, + private val autoCollection: JsonField, + private val balance: JsonField, + private val billingAddress: JsonField, + private val createdAt: JsonField, + private val currency: JsonField, + private val email: JsonField, + private val emailDelivery: JsonField, + private val exemptFromAutomatedTax: JsonField, + private val externalCustomerId: JsonField, + private val hierarchy: JsonField, + private val metadata: JsonField, + private val name: JsonField, + private val paymentProvider: JsonField, + private val paymentProviderId: JsonField, + private val portalUrl: JsonField, + private val shippingAddress: JsonField, + private val taxId: JsonField, + private val timezone: JsonField, + private val accountingSyncConfiguration: JsonField, + private val reportingConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("additional_emails") + @ExcludeMissing + additionalEmails: JsonField> = JsonMissing.of(), + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("balance") @ExcludeMissing balance: JsonField = JsonMissing.of(), + @JsonProperty("billing_address") + @ExcludeMissing + billingAddress: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("currency") @ExcludeMissing currency: JsonField = JsonMissing.of(), + @JsonProperty("email") @ExcludeMissing email: JsonField = JsonMissing.of(), + @JsonProperty("email_delivery") + @ExcludeMissing + emailDelivery: JsonField = JsonMissing.of(), + @JsonProperty("exempt_from_automated_tax") + @ExcludeMissing + exemptFromAutomatedTax: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + @JsonProperty("hierarchy") + @ExcludeMissing + hierarchy: JsonField = JsonMissing.of(), + @JsonProperty("metadata") @ExcludeMissing metadata: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("payment_provider") + @ExcludeMissing + paymentProvider: JsonField = JsonMissing.of(), + @JsonProperty("payment_provider_id") + @ExcludeMissing + paymentProviderId: JsonField = JsonMissing.of(), + @JsonProperty("portal_url") @ExcludeMissing portalUrl: JsonField = JsonMissing.of(), + @JsonProperty("shipping_address") + @ExcludeMissing + shippingAddress: JsonField = JsonMissing.of(), + @JsonProperty("tax_id") @ExcludeMissing taxId: JsonField = JsonMissing.of(), + @JsonProperty("timezone") @ExcludeMissing timezone: JsonField = JsonMissing.of(), + @JsonProperty("accounting_sync_configuration") + @ExcludeMissing + accountingSyncConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("reporting_configuration") + @ExcludeMissing + reportingConfiguration: JsonField = JsonMissing.of(), + ) : this( + id, + additionalEmails, + autoCollection, + balance, + billingAddress, + createdAt, + currency, + email, + emailDelivery, + exemptFromAutomatedTax, + externalCustomerId, + hierarchy, + metadata, + name, + paymentProvider, + paymentProviderId, + portalUrl, + shippingAddress, + taxId, + timezone, + accountingSyncConfiguration, + reportingConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -565,41 +601,15 @@ private constructor( @ExcludeMissing fun _reportingConfiguration(): JsonField = reportingConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - additionalEmails() - autoCollection() - balance() - billingAddress().ifPresent { it.validate() } - createdAt() - currency() - email() - emailDelivery() - exemptFromAutomatedTax() - externalCustomerId() - hierarchy().validate() - metadata().validate() - name() - paymentProvider() - paymentProviderId() - portalUrl() - shippingAddress().ifPresent { it.validate() } - taxId().ifPresent { it.validate() } - timezone() - accountingSyncConfiguration().ifPresent { it.validate() } - reportingConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1240,36 +1250,65 @@ private constructor( checkRequired("timezone", timezone), accountingSyncConfiguration, reportingConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + additionalEmails() + autoCollection() + balance() + billingAddress().ifPresent { it.validate() } + createdAt() + currency() + email() + emailDelivery() + exemptFromAutomatedTax() + externalCustomerId() + hierarchy().validate() + metadata().validate() + name() + paymentProvider() + paymentProviderId() + portalUrl() + shippingAddress().ifPresent { it.validate() } + taxId().ifPresent { it.validate() } + timezone() + accountingSyncConfiguration().ifPresent { it.validate() } + reportingConfiguration().ifPresent { it.validate() } + validated = true + } + class BillingAddress - @JsonCreator private constructor( - @JsonProperty("city") - @ExcludeMissing - private val city: JsonField = JsonMissing.of(), - @JsonProperty("country") - @ExcludeMissing - private val country: JsonField = JsonMissing.of(), - @JsonProperty("line1") - @ExcludeMissing - private val line1: JsonField = JsonMissing.of(), - @JsonProperty("line2") - @ExcludeMissing - private val line2: JsonField = JsonMissing.of(), - @JsonProperty("postal_code") - @ExcludeMissing - private val postalCode: JsonField = JsonMissing.of(), - @JsonProperty("state") - @ExcludeMissing - private val state: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val city: JsonField, + private val country: JsonField, + private val line1: JsonField, + private val line2: JsonField, + private val postalCode: JsonField, + private val state: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("city") @ExcludeMissing city: JsonField = JsonMissing.of(), + @JsonProperty("country") @ExcludeMissing country: JsonField = JsonMissing.of(), + @JsonProperty("line1") @ExcludeMissing line1: JsonField = JsonMissing.of(), + @JsonProperty("line2") @ExcludeMissing line2: JsonField = JsonMissing.of(), + @JsonProperty("postal_code") + @ExcludeMissing + postalCode: JsonField = JsonMissing.of(), + @JsonProperty("state") @ExcludeMissing state: JsonField = JsonMissing.of(), + ) : this(city, country, line1, line2, postalCode, state, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -1351,25 +1390,15 @@ private constructor( */ @JsonProperty("state") @ExcludeMissing fun _state(): JsonField = state + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingAddress = apply { - if (validated) { - return@apply - } - - city() - country() - line1() - line2() - postalCode() - state() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1541,10 +1570,26 @@ private constructor( checkRequired("line2", line2), checkRequired("postalCode", postalCode), checkRequired("state", state), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingAddress = apply { + if (validated) { + return@apply + } + + city() + country() + line1() + line2() + postalCode() + state() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -1564,20 +1609,21 @@ private constructor( } /** The hierarchical relationships for this customer. */ - @NoAutoDetect class Hierarchy - @JsonCreator private constructor( - @JsonProperty("children") - @ExcludeMissing - private val children: JsonField> = JsonMissing.of(), - @JsonProperty("parent") - @ExcludeMissing - private val parent: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val children: JsonField>, + private val parent: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("children") + @ExcludeMissing + children: JsonField> = JsonMissing.of(), + @JsonProperty("parent") @ExcludeMissing parent: JsonField = JsonMissing.of(), + ) : this(children, parent, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -1604,21 +1650,15 @@ private constructor( */ @JsonProperty("parent") @ExcludeMissing fun _parent(): JsonField = parent + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Hierarchy = apply { - if (validated) { - return@apply - } - - children().forEach { it.validate() } - parent().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1725,24 +1765,37 @@ private constructor( Hierarchy( checkRequired("children", children).map { it.toImmutable() }, checkRequired("parent", parent), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): Hierarchy = apply { + if (validated) { + return@apply + } + + children().forEach { it.validate() } + parent().ifPresent { it.validate() } + validated = true + } + class Child - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -1774,21 +1827,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Child = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1891,10 +1938,22 @@ private constructor( Child( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Child = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -1913,20 +1972,21 @@ private constructor( "Child{id=$id, externalCustomerId=$externalCustomerId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Parent - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -1958,21 +2018,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Parent = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2075,10 +2129,22 @@ private constructor( Parent( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Parent = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2120,27 +2186,20 @@ private constructor( * dictionary. Individual keys can be removed by setting the value to `null`, and the entire * metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2184,7 +2243,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -2327,32 +2396,29 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ShippingAddress - @JsonCreator private constructor( - @JsonProperty("city") - @ExcludeMissing - private val city: JsonField = JsonMissing.of(), - @JsonProperty("country") - @ExcludeMissing - private val country: JsonField = JsonMissing.of(), - @JsonProperty("line1") - @ExcludeMissing - private val line1: JsonField = JsonMissing.of(), - @JsonProperty("line2") - @ExcludeMissing - private val line2: JsonField = JsonMissing.of(), - @JsonProperty("postal_code") - @ExcludeMissing - private val postalCode: JsonField = JsonMissing.of(), - @JsonProperty("state") - @ExcludeMissing - private val state: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val city: JsonField, + private val country: JsonField, + private val line1: JsonField, + private val line2: JsonField, + private val postalCode: JsonField, + private val state: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("city") @ExcludeMissing city: JsonField = JsonMissing.of(), + @JsonProperty("country") @ExcludeMissing country: JsonField = JsonMissing.of(), + @JsonProperty("line1") @ExcludeMissing line1: JsonField = JsonMissing.of(), + @JsonProperty("line2") @ExcludeMissing line2: JsonField = JsonMissing.of(), + @JsonProperty("postal_code") + @ExcludeMissing + postalCode: JsonField = JsonMissing.of(), + @JsonProperty("state") @ExcludeMissing state: JsonField = JsonMissing.of(), + ) : this(city, country, line1, line2, postalCode, state, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -2434,25 +2500,15 @@ private constructor( */ @JsonProperty("state") @ExcludeMissing fun _state(): JsonField = state + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ShippingAddress = apply { - if (validated) { - return@apply - } - - city() - country() - line1() - line2() - postalCode() - state() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2624,10 +2680,26 @@ private constructor( checkRequired("line2", line2), checkRequired("postalCode", postalCode), checkRequired("state", state), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): ShippingAddress = apply { + if (validated) { + return@apply + } + + city() + country() + line1() + line2() + postalCode() + state() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2752,21 +2824,21 @@ private constructor( * |Venezuela |`ve_rif` |Venezuelan RIF Number | * |Vietnam |`vn_tin` |Vietnamese Tax ID Number | */ - @NoAutoDetect class TaxId - @JsonCreator private constructor( - @JsonProperty("country") - @ExcludeMissing - private val country: JsonField = JsonMissing.of(), - @JsonProperty("type") @ExcludeMissing private val type: JsonField = JsonMissing.of(), - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val country: JsonField, + private val type: JsonField, + private val value: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("country") @ExcludeMissing country: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + @JsonProperty("value") @ExcludeMissing value: JsonField = JsonMissing.of(), + ) : this(country, type, value, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -2806,22 +2878,15 @@ private constructor( */ @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TaxId = apply { - if (validated) { - return@apply - } - - country() - type() - value() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2927,10 +2992,23 @@ private constructor( checkRequired("country", country), checkRequired("type", type), checkRequired("value", value), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): TaxId = apply { + if (validated) { + return@apply + } + + country() + type() + value() + validated = true + } + class Country @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4018,20 +4096,23 @@ private constructor( "TaxId{country=$country, type=$type, value=$value, additionalProperties=$additionalProperties}" } - @NoAutoDetect class AccountingSyncConfiguration - @JsonCreator private constructor( - @JsonProperty("accounting_providers") - @ExcludeMissing - private val accountingProviders: JsonField> = JsonMissing.of(), - @JsonProperty("excluded") - @ExcludeMissing - private val excluded: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val accountingProviders: JsonField>, + private val excluded: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("accounting_providers") + @ExcludeMissing + accountingProviders: JsonField> = JsonMissing.of(), + @JsonProperty("excluded") + @ExcludeMissing + excluded: JsonField = JsonMissing.of(), + ) : this(accountingProviders, excluded, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -4062,21 +4143,15 @@ private constructor( */ @JsonProperty("excluded") @ExcludeMissing fun _excluded(): JsonField = excluded + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AccountingSyncConfiguration = apply { - if (validated) { - return@apply - } - - accountingProviders().forEach { it.validate() } - excluded() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4187,24 +4262,39 @@ private constructor( it.toImmutable() }, checkRequired("excluded", excluded), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): AccountingSyncConfiguration = apply { + if (validated) { + return@apply + } + + accountingProviders().forEach { it.validate() } + excluded() + validated = true + } + class AccountingProvider - @JsonCreator private constructor( - @JsonProperty("external_provider_id") - @ExcludeMissing - private val externalProviderId: JsonField = JsonMissing.of(), - @JsonProperty("provider_type") - @ExcludeMissing - private val providerType: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val externalProviderId: JsonField, + private val providerType: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("external_provider_id") + @ExcludeMissing + externalProviderId: JsonField = JsonMissing.of(), + @JsonProperty("provider_type") + @ExcludeMissing + providerType: JsonField = JsonMissing.of(), + ) : this(externalProviderId, providerType, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -4239,21 +4329,15 @@ private constructor( @ExcludeMissing fun _providerType(): JsonField = providerType + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AccountingProvider = apply { - if (validated) { - return@apply - } - - externalProviderId() - providerType() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4359,10 +4443,22 @@ private constructor( AccountingProvider( checkRequired("externalProviderId", externalProviderId), checkRequired("providerType", providerType), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AccountingProvider = apply { + if (validated) { + return@apply + } + + externalProviderId() + providerType() + validated = true + } + class ProviderType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4505,17 +4601,17 @@ private constructor( "AccountingSyncConfiguration{accountingProviders=$accountingProviders, excluded=$excluded, additionalProperties=$additionalProperties}" } - @NoAutoDetect class ReportingConfiguration - @JsonCreator private constructor( - @JsonProperty("exempt") - @ExcludeMissing - private val exempt: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val exempt: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("exempt") @ExcludeMissing exempt: JsonField = JsonMissing.of() + ) : this(exempt, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -4529,20 +4625,15 @@ private constructor( */ @JsonProperty("exempt") @ExcludeMissing fun _exempt(): JsonField = exempt + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ReportingConfiguration = apply { - if (validated) { - return@apply - } - - exempt() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4616,10 +4707,21 @@ private constructor( fun build(): ReportingConfiguration = ReportingConfiguration( checkRequired("exempt", exempt), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): ReportingConfiguration = apply { + if (validated) { + return@apply + } + + exempt() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionCreateParams.kt index abc518dd..0e2bc28e 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionCreateParams.kt @@ -11,14 +11,12 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -84,224 +82,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - fun _pathParam(index: Int): String = - when (index) { - 0 -> customerId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("type") @ExcludeMissing private val type: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun amount(): String = amount.getRequired("amount") - - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun type(): Type = type.getRequired("type") - - /** - * An optional description that can be specified around this entry. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun description(): Optional = - Optional.ofNullable(description.getNullable("description")) - - /** - * Returns the raw JSON value of [amount]. - * - * Unlike [amount], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("amount") @ExcludeMissing fun _amount(): JsonField = amount - - /** - * Returns the raw JSON value of [type]. - * - * Unlike [type], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type - - /** - * Returns the raw JSON value of [description]. - * - * Unlike [description], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("description") - @ExcludeMissing - fun _description(): JsonField = description - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - amount() - type() - description() - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .amount() - * .type() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var amount: JsonField? = null - private var type: JsonField? = null - private var description: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - amount = body.amount - type = body.type - description = body.description - additionalProperties = body.additionalProperties.toMutableMap() - } - - fun amount(amount: String) = amount(JsonField.of(amount)) - - /** - * Sets [Builder.amount] to an arbitrary JSON value. - * - * You should usually call [Builder.amount] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun amount(amount: JsonField) = apply { this.amount = amount } - - fun type(type: Type) = type(JsonField.of(type)) - - /** - * Sets [Builder.type] to an arbitrary JSON value. - * - * You should usually call [Builder.type] with a well-typed [Type] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun type(type: JsonField) = apply { this.type = type } - - /** An optional description that can be specified around this entry. */ - fun description(description: String?) = description(JsonField.ofNullable(description)) - - /** Alias for calling [Builder.description] with `description.orElse(null)`. */ - fun description(description: Optional) = description(description.getOrNull()) - - /** - * Sets [Builder.description] to an arbitrary JSON value. - * - * You should usually call [Builder.description] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun description(description: JsonField) = apply { - this.description = description - } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .amount() - * .type() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body( - checkRequired("amount", amount), - checkRequired("type", type), - description, - additionalProperties.toImmutable(), - ) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && amount == other.amount && type == other.type && description == other.description && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(amount, type, description, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{amount=$amount, type=$type, description=$description, additionalProperties=$additionalProperties}" - } - fun toBuilder() = Builder().from(this) companion object { @@ -321,7 +101,6 @@ private constructor( } /** A builder for [CustomerBalanceTransactionCreateParams]. */ - @NoAutoDetect class Builder internal constructor() { private var customerId: String? = null @@ -517,6 +296,232 @@ private constructor( ) } + @JvmSynthetic internal fun _body(): Body = body + + fun _pathParam(index: Int): String = + when (index) { + 0 -> customerId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body + private constructor( + private val amount: JsonField, + private val type: JsonField, + private val description: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + ) : this(amount, type, description, mutableMapOf()) + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun amount(): String = amount.getRequired("amount") + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun type(): Type = type.getRequired("type") + + /** + * An optional description that can be specified around this entry. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun description(): Optional = + Optional.ofNullable(description.getNullable("description")) + + /** + * Returns the raw JSON value of [amount]. + * + * Unlike [amount], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("amount") @ExcludeMissing fun _amount(): JsonField = amount + + /** + * Returns the raw JSON value of [type]. + * + * Unlike [type], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type + + /** + * Returns the raw JSON value of [description]. + * + * Unlike [description], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("description") + @ExcludeMissing + fun _description(): JsonField = description + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .amount() + * .type() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var amount: JsonField? = null + private var type: JsonField? = null + private var description: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + amount = body.amount + type = body.type + description = body.description + additionalProperties = body.additionalProperties.toMutableMap() + } + + fun amount(amount: String) = amount(JsonField.of(amount)) + + /** + * Sets [Builder.amount] to an arbitrary JSON value. + * + * You should usually call [Builder.amount] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun amount(amount: JsonField) = apply { this.amount = amount } + + fun type(type: Type) = type(JsonField.of(type)) + + /** + * Sets [Builder.type] to an arbitrary JSON value. + * + * You should usually call [Builder.type] with a well-typed [Type] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun type(type: JsonField) = apply { this.type = type } + + /** An optional description that can be specified around this entry. */ + fun description(description: String?) = description(JsonField.ofNullable(description)) + + /** Alias for calling [Builder.description] with `description.orElse(null)`. */ + fun description(description: Optional) = description(description.getOrNull()) + + /** + * Sets [Builder.description] to an arbitrary JSON value. + * + * You should usually call [Builder.description] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun description(description: JsonField) = apply { + this.description = description + } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .amount() + * .type() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body( + checkRequired("amount", amount), + checkRequired("type", type), + description, + additionalProperties.toMutableMap(), + ) + } + + private var validated: Boolean = false + + fun validate(): Body = apply { + if (validated) { + return@apply + } + + amount() + type() + description() + validated = true + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Body && amount == other.amount && type == other.type && description == other.description && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(amount, type, description, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{amount=$amount, type=$type, description=$description, additionalProperties=$additionalProperties}" + } + class Type @JsonCreator private constructor(private val value: JsonField) : Enum { /** diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionCreateResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionCreateResponse.kt index e642b749..8560244a 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionCreateResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionCreateResponse.kt @@ -11,49 +11,65 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class CustomerBalanceTransactionCreateResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("action") - @ExcludeMissing - private val action: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_note") - @ExcludeMissing - private val creditNote: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("invoice") - @ExcludeMissing - private val invoice: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonProperty("type") @ExcludeMissing private val type: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val action: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditNote: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val invoice: JsonField, + private val startingBalance: JsonField, + private val type: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("action") @ExcludeMissing action: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_note") + @ExcludeMissing + creditNote: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("invoice") @ExcludeMissing invoice: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + ) : this( + id, + action, + amount, + createdAt, + creditNote, + description, + endingBalance, + invoice, + startingBalance, + type, + mutableMapOf(), + ) + /** * A unique id for this transaction. * @@ -207,29 +223,15 @@ private constructor( */ @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CustomerBalanceTransactionCreateResponse = apply { - if (validated) { - return@apply - } - - id() - action() - amount() - createdAt() - creditNote().ifPresent { it.validate() } - description() - endingBalance() - invoice().ifPresent { it.validate() } - startingBalance() - type() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -472,10 +474,30 @@ private constructor( checkRequired("invoice", invoice), checkRequired("startingBalance", startingBalance), checkRequired("type", type), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CustomerBalanceTransactionCreateResponse = apply { + if (validated) { + return@apply + } + + id() + action() + amount() + createdAt() + creditNote().ifPresent { it.validate() } + description() + endingBalance() + invoice().ifPresent { it.validate() } + startingBalance() + type() + validated = true + } + class Action @JsonCreator private constructor(private val value: JsonField) : Enum { /** @@ -615,15 +637,17 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditNote - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * The id of the Credit note * @@ -639,20 +663,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditNote = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -725,7 +744,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): CreditNote = - CreditNote(checkRequired("id", id), additionalProperties.toImmutable()) + CreditNote(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): CreditNote = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -745,15 +775,17 @@ private constructor( override fun toString() = "CreditNote{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Invoice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * The Invoice id * @@ -769,20 +801,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Invoice = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -855,7 +882,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): Invoice = - Invoice(checkRequired("id", id), additionalProperties.toImmutable()) + Invoice(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Invoice = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionListPage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionListPage.kt index fb7ebb88..f867d2cd 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionListPage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionListPage.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.blocking.customers.BalanceTransactionService +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.stream.Stream @@ -109,19 +107,20 @@ private constructor( ) = CustomerBalanceTransactionListPage(balanceTransactionsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") - private val data: JsonField> = - JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") + data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() @@ -136,9 +135,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -213,7 +218,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionListPageAsync.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionListPageAsync.kt index 9ece538d..cbb1c9f9 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionListPageAsync.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionListPageAsync.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.async.customers.BalanceTransactionServiceAsync +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.concurrent.CompletableFuture @@ -111,19 +109,20 @@ private constructor( ) = CustomerBalanceTransactionListPageAsync(balanceTransactionsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") - private val data: JsonField> = - JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") + data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() @@ -138,9 +137,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -215,7 +220,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionListParams.kt index a54e3f61..f1364f6a 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionListParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -75,35 +74,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> customerId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - cursor?.let { put("cursor", it) } - limit?.let { put("limit", it.toString()) } - operationTimeGt?.let { - put("operation_time[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - operationTimeGte?.let { - put("operation_time[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - operationTimeLt?.let { - put("operation_time[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - operationTimeLte?.let { - put("operation_time[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -121,7 +91,6 @@ private constructor( } /** A builder for [CustomerBalanceTransactionListParams]. */ - @NoAutoDetect class Builder internal constructor() { private var customerId: String? = null @@ -330,6 +299,35 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> customerId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + cursor?.let { put("cursor", it) } + limit?.let { put("limit", it.toString()) } + operationTimeGt?.let { + put("operation_time[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + operationTimeGte?.let { + put("operation_time[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + operationTimeLt?.let { + put("operation_time[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + operationTimeLte?.let { + put("operation_time[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + putAll(additionalQueryParams) + } + .build() + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionListResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionListResponse.kt index cfb741a0..864290df 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionListResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionListResponse.kt @@ -11,49 +11,65 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class CustomerBalanceTransactionListResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("action") - @ExcludeMissing - private val action: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_note") - @ExcludeMissing - private val creditNote: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("invoice") - @ExcludeMissing - private val invoice: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonProperty("type") @ExcludeMissing private val type: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val action: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditNote: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val invoice: JsonField, + private val startingBalance: JsonField, + private val type: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("action") @ExcludeMissing action: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_note") + @ExcludeMissing + creditNote: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("invoice") @ExcludeMissing invoice: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + ) : this( + id, + action, + amount, + createdAt, + creditNote, + description, + endingBalance, + invoice, + startingBalance, + type, + mutableMapOf(), + ) + /** * A unique id for this transaction. * @@ -207,29 +223,15 @@ private constructor( */ @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CustomerBalanceTransactionListResponse = apply { - if (validated) { - return@apply - } - - id() - action() - amount() - createdAt() - creditNote().ifPresent { it.validate() } - description() - endingBalance() - invoice().ifPresent { it.validate() } - startingBalance() - type() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -472,10 +474,30 @@ private constructor( checkRequired("invoice", invoice), checkRequired("startingBalance", startingBalance), checkRequired("type", type), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CustomerBalanceTransactionListResponse = apply { + if (validated) { + return@apply + } + + id() + action() + amount() + createdAt() + creditNote().ifPresent { it.validate() } + description() + endingBalance() + invoice().ifPresent { it.validate() } + startingBalance() + type() + validated = true + } + class Action @JsonCreator private constructor(private val value: JsonField) : Enum { /** @@ -615,15 +637,17 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditNote - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * The id of the Credit note * @@ -639,20 +663,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditNote = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -725,7 +744,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): CreditNote = - CreditNote(checkRequired("id", id), additionalProperties.toImmutable()) + CreditNote(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): CreditNote = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -745,15 +775,17 @@ private constructor( override fun toString() = "CreditNote{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Invoice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * The Invoice id * @@ -769,20 +801,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Invoice = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -855,7 +882,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): Invoice = - Invoice(checkRequired("id", id), additionalProperties.toImmutable()) + Invoice(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Invoice = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListByExternalIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListByExternalIdParams.kt index 4494ae76..a846e45d 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListByExternalIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListByExternalIdParams.kt @@ -5,7 +5,6 @@ package com.withorb.api.models import com.fasterxml.jackson.annotation.JsonCreator import com.withorb.api.core.Enum import com.withorb.api.core.JsonField -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -158,29 +157,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> externalCustomerId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - currency?.let { put("currency", it) } - timeframeEnd?.let { - put("timeframe_end", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - timeframeStart?.let { - put("timeframe_start", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - viewMode?.let { put("view_mode", it.toString()) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -198,7 +174,6 @@ private constructor( } /** A builder for [CustomerCostListByExternalIdParams]. */ - @NoAutoDetect class Builder internal constructor() { private var externalCustomerId: String? = null @@ -380,6 +355,29 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> externalCustomerId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + currency?.let { put("currency", it) } + timeframeEnd?.let { + put("timeframe_end", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + timeframeStart?.let { + put("timeframe_start", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + viewMode?.let { put("view_mode", it.toString()) } + putAll(additionalQueryParams) + } + .build() + /** * Controls whether Orb returns cumulative costs since the start of the billing period, or * incremental day-by-day costs. If your customer has minimums or discounts, it's strongly diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListByExternalIdResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListByExternalIdResponse.kt index 1c5e38f8..edf2ea2a 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListByExternalIdResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListByExternalIdResponse.kt @@ -10,27 +10,27 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class CustomerCostListByExternalIdResponse -@JsonCreator private constructor( - @JsonProperty("data") - @ExcludeMissing - private val data: JsonField> = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val data: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") @ExcludeMissing data: JsonField> = JsonMissing.of() + ) : this(data, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -44,20 +44,15 @@ private constructor( */ @JsonProperty("data") @ExcludeMissing fun _data(): JsonField> = data + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CustomerCostListByExternalIdResponse = apply { - if (validated) { - return@apply - } - - data().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -148,33 +143,48 @@ private constructor( fun build(): CustomerCostListByExternalIdResponse = CustomerCostListByExternalIdResponse( checkRequired("data", data).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): CustomerCostListByExternalIdResponse = apply { + if (validated) { + return@apply + } + + data().forEach { it.validate() } + validated = true + } + class Data - @JsonCreator private constructor( - @JsonProperty("per_price_costs") - @ExcludeMissing - private val perPriceCosts: JsonField> = JsonMissing.of(), - @JsonProperty("subtotal") - @ExcludeMissing - private val subtotal: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_end") - @ExcludeMissing - private val timeframeEnd: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_start") - @ExcludeMissing - private val timeframeStart: JsonField = JsonMissing.of(), - @JsonProperty("total") - @ExcludeMissing - private val total: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val perPriceCosts: JsonField>, + private val subtotal: JsonField, + private val timeframeEnd: JsonField, + private val timeframeStart: JsonField, + private val total: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("per_price_costs") + @ExcludeMissing + perPriceCosts: JsonField> = JsonMissing.of(), + @JsonProperty("subtotal") + @ExcludeMissing + subtotal: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_end") + @ExcludeMissing + timeframeEnd: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_start") + @ExcludeMissing + timeframeStart: JsonField = JsonMissing.of(), + @JsonProperty("total") @ExcludeMissing total: JsonField = JsonMissing.of(), + ) : this(perPriceCosts, subtotal, timeframeEnd, timeframeStart, total, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -253,24 +263,15 @@ private constructor( */ @JsonProperty("total") @ExcludeMissing fun _total(): JsonField = total + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Data = apply { - if (validated) { - return@apply - } - - perPriceCosts().forEach { it.validate() } - subtotal() - timeframeEnd() - timeframeStart() - total() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -431,33 +432,50 @@ private constructor( checkRequired("timeframeEnd", timeframeEnd), checkRequired("timeframeStart", timeframeStart), checkRequired("total", total), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): Data = apply { + if (validated) { + return@apply + } + + perPriceCosts().forEach { it.validate() } + subtotal() + timeframeEnd() + timeframeStart() + total() + validated = true + } + class PerPriceCost - @JsonCreator private constructor( - @JsonProperty("price") - @ExcludeMissing - private val price: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("subtotal") - @ExcludeMissing - private val subtotal: JsonField = JsonMissing.of(), - @JsonProperty("total") - @ExcludeMissing - private val total: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val price: JsonField, + private val priceId: JsonField, + private val subtotal: JsonField, + private val total: JsonField, + private val quantity: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("price_id") + @ExcludeMissing + priceId: JsonField = JsonMissing.of(), + @JsonProperty("subtotal") + @ExcludeMissing + subtotal: JsonField = JsonMissing.of(), + @JsonProperty("total") @ExcludeMissing total: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + ) : this(price, priceId, subtotal, total, quantity, mutableMapOf()) + /** * The price object * @@ -539,24 +557,15 @@ private constructor( */ @JsonProperty("quantity") @ExcludeMissing fun _quantity(): JsonField = quantity + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PerPriceCost = apply { - if (validated) { - return@apply - } - - price().validate() - priceId() - subtotal() - total() - quantity() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -865,10 +874,25 @@ private constructor( checkRequired("subtotal", subtotal), checkRequired("total", total), quantity, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PerPriceCost = apply { + if (validated) { + return@apply + } + + price().validate() + priceId() + subtotal() + total() + quantity() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListParams.kt index a3604eab..5e187a6e 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListParams.kt @@ -5,7 +5,6 @@ package com.withorb.api.models import com.fasterxml.jackson.annotation.JsonCreator import com.withorb.api.core.Enum import com.withorb.api.core.JsonField -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -158,29 +157,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> customerId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - currency?.let { put("currency", it) } - timeframeEnd?.let { - put("timeframe_end", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - timeframeStart?.let { - put("timeframe_start", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - viewMode?.let { put("view_mode", it.toString()) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -197,7 +173,6 @@ private constructor( } /** A builder for [CustomerCostListParams]. */ - @NoAutoDetect class Builder internal constructor() { private var customerId: String? = null @@ -375,6 +350,29 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> customerId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + currency?.let { put("currency", it) } + timeframeEnd?.let { + put("timeframe_end", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + timeframeStart?.let { + put("timeframe_start", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + viewMode?.let { put("view_mode", it.toString()) } + putAll(additionalQueryParams) + } + .build() + /** * Controls whether Orb returns cumulative costs since the start of the billing period, or * incremental day-by-day costs. If your customer has minimums or discounts, it's strongly diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListResponse.kt index 3254d98d..4edde920 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListResponse.kt @@ -10,27 +10,27 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class CustomerCostListResponse -@JsonCreator private constructor( - @JsonProperty("data") - @ExcludeMissing - private val data: JsonField> = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val data: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") @ExcludeMissing data: JsonField> = JsonMissing.of() + ) : this(data, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -44,20 +44,15 @@ private constructor( */ @JsonProperty("data") @ExcludeMissing fun _data(): JsonField> = data + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CustomerCostListResponse = apply { - if (validated) { - return@apply - } - - data().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -144,33 +139,48 @@ private constructor( fun build(): CustomerCostListResponse = CustomerCostListResponse( checkRequired("data", data).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): CustomerCostListResponse = apply { + if (validated) { + return@apply + } + + data().forEach { it.validate() } + validated = true + } + class Data - @JsonCreator private constructor( - @JsonProperty("per_price_costs") - @ExcludeMissing - private val perPriceCosts: JsonField> = JsonMissing.of(), - @JsonProperty("subtotal") - @ExcludeMissing - private val subtotal: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_end") - @ExcludeMissing - private val timeframeEnd: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_start") - @ExcludeMissing - private val timeframeStart: JsonField = JsonMissing.of(), - @JsonProperty("total") - @ExcludeMissing - private val total: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val perPriceCosts: JsonField>, + private val subtotal: JsonField, + private val timeframeEnd: JsonField, + private val timeframeStart: JsonField, + private val total: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("per_price_costs") + @ExcludeMissing + perPriceCosts: JsonField> = JsonMissing.of(), + @JsonProperty("subtotal") + @ExcludeMissing + subtotal: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_end") + @ExcludeMissing + timeframeEnd: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_start") + @ExcludeMissing + timeframeStart: JsonField = JsonMissing.of(), + @JsonProperty("total") @ExcludeMissing total: JsonField = JsonMissing.of(), + ) : this(perPriceCosts, subtotal, timeframeEnd, timeframeStart, total, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -249,24 +259,15 @@ private constructor( */ @JsonProperty("total") @ExcludeMissing fun _total(): JsonField = total + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Data = apply { - if (validated) { - return@apply - } - - perPriceCosts().forEach { it.validate() } - subtotal() - timeframeEnd() - timeframeStart() - total() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -427,33 +428,50 @@ private constructor( checkRequired("timeframeEnd", timeframeEnd), checkRequired("timeframeStart", timeframeStart), checkRequired("total", total), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): Data = apply { + if (validated) { + return@apply + } + + perPriceCosts().forEach { it.validate() } + subtotal() + timeframeEnd() + timeframeStart() + total() + validated = true + } + class PerPriceCost - @JsonCreator private constructor( - @JsonProperty("price") - @ExcludeMissing - private val price: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("subtotal") - @ExcludeMissing - private val subtotal: JsonField = JsonMissing.of(), - @JsonProperty("total") - @ExcludeMissing - private val total: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val price: JsonField, + private val priceId: JsonField, + private val subtotal: JsonField, + private val total: JsonField, + private val quantity: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("price_id") + @ExcludeMissing + priceId: JsonField = JsonMissing.of(), + @JsonProperty("subtotal") + @ExcludeMissing + subtotal: JsonField = JsonMissing.of(), + @JsonProperty("total") @ExcludeMissing total: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + ) : this(price, priceId, subtotal, total, quantity, mutableMapOf()) + /** * The price object * @@ -535,24 +553,15 @@ private constructor( */ @JsonProperty("quantity") @ExcludeMissing fun _quantity(): JsonField = quantity + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PerPriceCost = apply { - if (validated) { - return@apply - } - - price().validate() - priceId() - subtotal() - total() - quantity() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -861,10 +870,25 @@ private constructor( checkRequired("subtotal", subtotal), checkRequired("total", total), quantity, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PerPriceCost = apply { + if (validated) { + return@apply + } + + price().validate() + priceId() + subtotal() + total() + quantity() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreateParams.kt index 06da4dcc..46d1ea2d 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreateParams.kt @@ -20,16 +20,15 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -442,227 +441,422 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body + fun toBuilder() = Builder().from(this) - override fun _headers(): Headers = additionalHeaders + companion object { - override fun _queryParams(): QueryParams = additionalQueryParams + /** + * Returns a mutable builder for constructing an instance of [CustomerCreateParams]. + * + * The following fields are required: + * ```java + * .email() + * .name() + * ``` + */ + @JvmStatic fun builder() = Builder() + } - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("email") - @ExcludeMissing - private val email: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("accounting_sync_configuration") - @ExcludeMissing - private val accountingSyncConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("additional_emails") - @ExcludeMissing - private val additionalEmails: JsonField> = JsonMissing.of(), - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("billing_address") - @ExcludeMissing - private val billingAddress: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("email_delivery") - @ExcludeMissing - private val emailDelivery: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonProperty("hierarchy") - @ExcludeMissing - private val hierarchy: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("payment_provider") - @ExcludeMissing - private val paymentProvider: JsonField = JsonMissing.of(), - @JsonProperty("payment_provider_id") - @ExcludeMissing - private val paymentProviderId: JsonField = JsonMissing.of(), - @JsonProperty("reporting_configuration") - @ExcludeMissing - private val reportingConfiguration: JsonField = JsonMissing.of(), - @JsonProperty("shipping_address") - @ExcludeMissing - private val shippingAddress: JsonField = JsonMissing.of(), - @JsonProperty("tax_configuration") - @ExcludeMissing - private val taxConfiguration: JsonField = JsonMissing.of(), - @JsonProperty("tax_id") - @ExcludeMissing - private val taxId: JsonField = JsonMissing.of(), - @JsonProperty("timezone") - @ExcludeMissing - private val timezone: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { + /** A builder for [CustomerCreateParams]. */ + class Builder internal constructor() { + + private var body: Body.Builder = Body.builder() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from(customerCreateParams: CustomerCreateParams) = apply { + body = customerCreateParams.body.toBuilder() + additionalHeaders = customerCreateParams.additionalHeaders.toBuilder() + additionalQueryParams = customerCreateParams.additionalQueryParams.toBuilder() + } /** * A valid customer email, to be used for notifications. When Orb triggers payment through a * payment gateway, this email will be used for any automatically issued receipts. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun email(): String = email.getRequired("email") + fun email(email: String) = apply { body.email(email) } /** - * The full name of the customer + * Sets [Builder.email] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * You should usually call [Builder.email] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - fun name(): String = name.getRequired("name") + fun email(email: JsonField) = apply { body.email(email) } - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun accountingSyncConfiguration(): Optional = - Optional.ofNullable( - accountingSyncConfiguration.getNullable("accounting_sync_configuration") - ) + /** The full name of the customer */ + fun name(name: String) = apply { body.name(name) } /** - * Additional email addresses for this customer. If populated, these email addresses will be - * CC'd for customer communications. + * Sets [Builder.name] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.name] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - fun additionalEmails(): Optional> = - Optional.ofNullable(additionalEmails.getNullable("additional_emails")) + fun name(name: JsonField) = apply { body.name(name) } - /** - * Used to determine if invoices for this customer will automatically attempt to charge a - * saved payment method, if available. This parameter defaults to `True` when a payment - * provider is provided on customer creation. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun autoCollection(): Optional = - Optional.ofNullable(autoCollection.getNullable("auto_collection")) + fun accountingSyncConfiguration(accountingSyncConfiguration: AccountingSyncConfiguration?) = + apply { + body.accountingSyncConfiguration(accountingSyncConfiguration) + } /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Alias for calling [Builder.accountingSyncConfiguration] with + * `accountingSyncConfiguration.orElse(null)`. */ - fun billingAddress(): Optional = - Optional.ofNullable(billingAddress.getNullable("billing_address")) + fun accountingSyncConfiguration( + accountingSyncConfiguration: Optional + ) = accountingSyncConfiguration(accountingSyncConfiguration.getOrNull()) /** - * An ISO 4217 currency string used for the customer's invoices and balance. If not set at - * creation time, will be set at subscription creation time. + * Sets [Builder.accountingSyncConfiguration] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.accountingSyncConfiguration] with a well-typed + * [AccountingSyncConfiguration] value instead. This method is primarily for setting the + * field to an undocumented or not yet supported value. */ - fun currency(): Optional = Optional.ofNullable(currency.getNullable("currency")) + fun accountingSyncConfiguration( + accountingSyncConfiguration: JsonField + ) = apply { body.accountingSyncConfiguration(accountingSyncConfiguration) } /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Additional email addresses for this customer. If populated, these email addresses will be + * CC'd for customer communications. */ - fun emailDelivery(): Optional = - Optional.ofNullable(emailDelivery.getNullable("email_delivery")) + fun additionalEmails(additionalEmails: List?) = apply { + body.additionalEmails(additionalEmails) + } + + /** Alias for calling [Builder.additionalEmails] with `additionalEmails.orElse(null)`. */ + fun additionalEmails(additionalEmails: Optional>) = + additionalEmails(additionalEmails.getOrNull()) /** - * An optional user-defined ID for this customer resource, used throughout the system as an - * alias for this Customer. Use this field to identify a customer by an existing identifier - * in your system. + * Sets [Builder.additionalEmails] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.additionalEmails] with a well-typed `List` value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun externalCustomerId(): Optional = - Optional.ofNullable(externalCustomerId.getNullable("external_customer_id")) + fun additionalEmails(additionalEmails: JsonField>) = apply { + body.additionalEmails(additionalEmails) + } /** - * The hierarchical relationships for this customer. + * Adds a single [String] to [additionalEmails]. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * @throws IllegalStateException if the field was previously set to a non-list. */ - fun hierarchy(): Optional = - Optional.ofNullable(hierarchy.getNullable("hierarchy")) + fun addAdditionalEmail(additionalEmail: String) = apply { + body.addAdditionalEmail(additionalEmail) + } /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Used to determine if invoices for this customer will automatically attempt to charge a + * saved payment method, if available. This parameter defaults to `True` when a payment + * provider is provided on customer creation. */ - fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) + fun autoCollection(autoCollection: Boolean?) = apply { body.autoCollection(autoCollection) } /** - * This is used for creating charges or invoices in an external system via Orb. When not in - * test mode, the connection must first be configured in the Orb webapp. + * Alias for [Builder.autoCollection]. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * This unboxed primitive overload exists for backwards compatibility. */ - fun paymentProvider(): Optional = - Optional.ofNullable(paymentProvider.getNullable("payment_provider")) + fun autoCollection(autoCollection: Boolean) = autoCollection(autoCollection as Boolean?) + + /** Alias for calling [Builder.autoCollection] with `autoCollection.orElse(null)`. */ + fun autoCollection(autoCollection: Optional) = + autoCollection(autoCollection.getOrNull()) /** - * The ID of this customer in an external payments solution, such as Stripe. This is used - * for creating charges or invoices in the external system via Orb. + * Sets [Builder.autoCollection] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.autoCollection] with a well-typed [Boolean] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun paymentProviderId(): Optional = - Optional.ofNullable(paymentProviderId.getNullable("payment_provider_id")) + fun autoCollection(autoCollection: JsonField) = apply { + body.autoCollection(autoCollection) + } + + fun billingAddress(billingAddress: BillingAddress?) = apply { + body.billingAddress(billingAddress) + } + + /** Alias for calling [Builder.billingAddress] with `billingAddress.orElse(null)`. */ + fun billingAddress(billingAddress: Optional) = + billingAddress(billingAddress.getOrNull()) /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Sets [Builder.billingAddress] to an arbitrary JSON value. + * + * You should usually call [Builder.billingAddress] with a well-typed [BillingAddress] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun reportingConfiguration(): Optional = - Optional.ofNullable(reportingConfiguration.getNullable("reporting_configuration")) + fun billingAddress(billingAddress: JsonField) = apply { + body.billingAddress(billingAddress) + } /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * An ISO 4217 currency string used for the customer's invoices and balance. If not set at + * creation time, will be set at subscription creation time. */ - fun shippingAddress(): Optional = - Optional.ofNullable(shippingAddress.getNullable("shipping_address")) + fun currency(currency: String?) = apply { body.currency(currency) } + + /** Alias for calling [Builder.currency] with `currency.orElse(null)`. */ + fun currency(currency: Optional) = currency(currency.getOrNull()) /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Sets [Builder.currency] to an arbitrary JSON value. + * + * You should usually call [Builder.currency] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - fun taxConfiguration(): Optional = - Optional.ofNullable(taxConfiguration.getNullable("tax_configuration")) + fun currency(currency: JsonField) = apply { body.currency(currency) } + + fun emailDelivery(emailDelivery: Boolean?) = apply { body.emailDelivery(emailDelivery) } /** - * Tax IDs are commonly required to be displayed on customer invoices, which are added to - * the headers of invoices. + * Alias for [Builder.emailDelivery]. * - * ### Supported Tax ID Countries and Types - * |Country |Type |Description | - * |--------------------|------------|-------------------------------------------------------------------------------------------------------| - * |Andorra |`ad_nrt` |Andorran NRT Number | - * |Argentina |`ar_cuit` |Argentinian Tax ID Number | - * |Australia |`au_abn` |Australian Business Number (AU ABN) | - * |Australia |`au_arn` |Australian Taxation Office Reference Number | + * This unboxed primitive overload exists for backwards compatibility. + */ + fun emailDelivery(emailDelivery: Boolean) = emailDelivery(emailDelivery as Boolean?) + + /** Alias for calling [Builder.emailDelivery] with `emailDelivery.orElse(null)`. */ + fun emailDelivery(emailDelivery: Optional) = + emailDelivery(emailDelivery.getOrNull()) + + /** + * Sets [Builder.emailDelivery] to an arbitrary JSON value. + * + * You should usually call [Builder.emailDelivery] with a well-typed [Boolean] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun emailDelivery(emailDelivery: JsonField) = apply { + body.emailDelivery(emailDelivery) + } + + /** + * An optional user-defined ID for this customer resource, used throughout the system as an + * alias for this Customer. Use this field to identify a customer by an existing identifier + * in your system. + */ + fun externalCustomerId(externalCustomerId: String?) = apply { + body.externalCustomerId(externalCustomerId) + } + + /** + * Alias for calling [Builder.externalCustomerId] with `externalCustomerId.orElse(null)`. + */ + fun externalCustomerId(externalCustomerId: Optional) = + externalCustomerId(externalCustomerId.getOrNull()) + + /** + * Sets [Builder.externalCustomerId] to an arbitrary JSON value. + * + * You should usually call [Builder.externalCustomerId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun externalCustomerId(externalCustomerId: JsonField) = apply { + body.externalCustomerId(externalCustomerId) + } + + /** The hierarchical relationships for this customer. */ + fun hierarchy(hierarchy: Hierarchy?) = apply { body.hierarchy(hierarchy) } + + /** Alias for calling [Builder.hierarchy] with `hierarchy.orElse(null)`. */ + fun hierarchy(hierarchy: Optional) = hierarchy(hierarchy.getOrNull()) + + /** + * Sets [Builder.hierarchy] to an arbitrary JSON value. + * + * You should usually call [Builder.hierarchy] with a well-typed [Hierarchy] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun hierarchy(hierarchy: JsonField) = apply { body.hierarchy(hierarchy) } + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. + */ + fun metadata(metadata: Metadata?) = apply { body.metadata(metadata) } + + /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ + fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) + + /** + * Sets [Builder.metadata] to an arbitrary JSON value. + * + * You should usually call [Builder.metadata] with a well-typed [Metadata] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun metadata(metadata: JsonField) = apply { body.metadata(metadata) } + + /** + * This is used for creating charges or invoices in an external system via Orb. When not in + * test mode, the connection must first be configured in the Orb webapp. + */ + fun paymentProvider(paymentProvider: PaymentProvider?) = apply { + body.paymentProvider(paymentProvider) + } + + /** Alias for calling [Builder.paymentProvider] with `paymentProvider.orElse(null)`. */ + fun paymentProvider(paymentProvider: Optional) = + paymentProvider(paymentProvider.getOrNull()) + + /** + * Sets [Builder.paymentProvider] to an arbitrary JSON value. + * + * You should usually call [Builder.paymentProvider] with a well-typed [PaymentProvider] + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. + */ + fun paymentProvider(paymentProvider: JsonField) = apply { + body.paymentProvider(paymentProvider) + } + + /** + * The ID of this customer in an external payments solution, such as Stripe. This is used + * for creating charges or invoices in the external system via Orb. + */ + fun paymentProviderId(paymentProviderId: String?) = apply { + body.paymentProviderId(paymentProviderId) + } + + /** Alias for calling [Builder.paymentProviderId] with `paymentProviderId.orElse(null)`. */ + fun paymentProviderId(paymentProviderId: Optional) = + paymentProviderId(paymentProviderId.getOrNull()) + + /** + * Sets [Builder.paymentProviderId] to an arbitrary JSON value. + * + * You should usually call [Builder.paymentProviderId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun paymentProviderId(paymentProviderId: JsonField) = apply { + body.paymentProviderId(paymentProviderId) + } + + fun reportingConfiguration(reportingConfiguration: ReportingConfiguration?) = apply { + body.reportingConfiguration(reportingConfiguration) + } + + /** + * Alias for calling [Builder.reportingConfiguration] with + * `reportingConfiguration.orElse(null)`. + */ + fun reportingConfiguration(reportingConfiguration: Optional) = + reportingConfiguration(reportingConfiguration.getOrNull()) + + /** + * Sets [Builder.reportingConfiguration] to an arbitrary JSON value. + * + * You should usually call [Builder.reportingConfiguration] with a well-typed + * [ReportingConfiguration] value instead. This method is primarily for setting the field to + * an undocumented or not yet supported value. + */ + fun reportingConfiguration(reportingConfiguration: JsonField) = + apply { + body.reportingConfiguration(reportingConfiguration) + } + + fun shippingAddress(shippingAddress: ShippingAddress?) = apply { + body.shippingAddress(shippingAddress) + } + + /** Alias for calling [Builder.shippingAddress] with `shippingAddress.orElse(null)`. */ + fun shippingAddress(shippingAddress: Optional) = + shippingAddress(shippingAddress.getOrNull()) + + /** + * Sets [Builder.shippingAddress] to an arbitrary JSON value. + * + * You should usually call [Builder.shippingAddress] with a well-typed [ShippingAddress] + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. + */ + fun shippingAddress(shippingAddress: JsonField) = apply { + body.shippingAddress(shippingAddress) + } + + fun taxConfiguration(taxConfiguration: TaxConfiguration?) = apply { + body.taxConfiguration(taxConfiguration) + } + + /** Alias for calling [Builder.taxConfiguration] with `taxConfiguration.orElse(null)`. */ + fun taxConfiguration(taxConfiguration: Optional) = + taxConfiguration(taxConfiguration.getOrNull()) + + /** + * Sets [Builder.taxConfiguration] to an arbitrary JSON value. + * + * You should usually call [Builder.taxConfiguration] with a well-typed [TaxConfiguration] + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. + */ + fun taxConfiguration(taxConfiguration: JsonField) = apply { + body.taxConfiguration(taxConfiguration) + } + + /** + * Alias for calling [taxConfiguration] with `TaxConfiguration.ofNewAvalara(newAvalara)`. + */ + fun taxConfiguration(newAvalara: TaxConfiguration.NewAvalaraTaxConfiguration) = apply { + body.taxConfiguration(newAvalara) + } + + /** + * Alias for calling [taxConfiguration] with the following: + * ```java + * TaxConfiguration.NewAvalaraTaxConfiguration.builder() + * .taxProvider(CustomerCreateParams.TaxConfiguration.NewAvalaraTaxConfiguration.TaxProvider.AVALARA) + * .taxExempt(taxExempt) + * .build() + * ``` + */ + fun newAvalaraTaxConfiguration(taxExempt: Boolean) = apply { + body.newAvalaraTaxConfiguration(taxExempt) + } + + /** Alias for calling [taxConfiguration] with `TaxConfiguration.ofNewTaxJar(newTaxJar)`. */ + fun taxConfiguration(newTaxJar: TaxConfiguration.NewTaxJarConfiguration) = apply { + body.taxConfiguration(newTaxJar) + } + + /** + * Alias for calling [taxConfiguration] with the following: + * ```java + * TaxConfiguration.NewTaxJarConfiguration.builder() + * .taxProvider(CustomerCreateParams.TaxConfiguration.NewTaxJarConfiguration.TaxProvider.TAXJAR) + * .taxExempt(taxExempt) + * .build() + * ``` + */ + fun newTaxJarTaxConfiguration(taxExempt: Boolean) = apply { + body.newTaxJarTaxConfiguration(taxExempt) + } + + /** + * Tax IDs are commonly required to be displayed on customer invoices, which are added to + * the headers of invoices. + * + * ### Supported Tax ID Countries and Types + * |Country |Type |Description | + * |--------------------|------------|-------------------------------------------------------------------------------------------------------| + * |Andorra |`ad_nrt` |Andorran NRT Number | + * |Argentina |`ar_cuit` |Argentinian Tax ID Number | + * |Australia |`au_abn` |Australian Business Number (AU ABN) | + * |Australia |`au_arn` |Australian Taxation Office Reference Number | * |Austria |`eu_vat` |European VAT Number | * |Bahrain |`bh_vat` |Bahraini VAT Number | * |Belgium |`eu_vat` |European VAT Number | @@ -757,216 +951,709 @@ private constructor( * |Uruguay |`uy_ruc` |Uruguayan RUC Number | * |Venezuela |`ve_rif` |Venezuelan RIF Number | * |Vietnam |`vn_tin` |Vietnamese Tax ID Number | + */ + fun taxId(taxId: TaxId?) = apply { body.taxId(taxId) } + + /** Alias for calling [Builder.taxId] with `taxId.orElse(null)`. */ + fun taxId(taxId: Optional) = taxId(taxId.getOrNull()) + + /** + * Sets [Builder.taxId] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.taxId] with a well-typed [TaxId] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - fun taxId(): Optional = Optional.ofNullable(taxId.getNullable("tax_id")) + fun taxId(taxId: JsonField) = apply { body.taxId(taxId) } /** * A timezone identifier from the IANA timezone database, such as `"America/Los_Angeles"`. * This defaults to your account's timezone if not set. This cannot be changed after * customer creation. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). */ - fun timezone(): Optional = Optional.ofNullable(timezone.getNullable("timezone")) + fun timezone(timezone: String?) = apply { body.timezone(timezone) } - /** - * Returns the raw JSON value of [email]. - * - * Unlike [email], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("email") @ExcludeMissing fun _email(): JsonField = email + /** Alias for calling [Builder.timezone] with `timezone.orElse(null)`. */ + fun timezone(timezone: Optional) = timezone(timezone.getOrNull()) /** - * Returns the raw JSON value of [name]. + * Sets [Builder.timezone] to an arbitrary JSON value. * - * Unlike [name], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.timezone] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + fun timezone(timezone: JsonField) = apply { body.timezone(timezone) } + + fun additionalBodyProperties(additionalBodyProperties: Map) = apply { + body.additionalProperties(additionalBodyProperties) + } + + fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { + body.putAdditionalProperty(key, value) + } + + fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = + apply { + body.putAllAdditionalProperties(additionalBodyProperties) + } + + fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + body.removeAllAdditionalProperties(keys) + } + + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) + } + + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } + + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } + + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) + } + + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } /** - * Returns the raw JSON value of [accountingSyncConfiguration]. + * Returns an immutable instance of [CustomerCreateParams]. * - * Unlike [accountingSyncConfiguration], this method doesn't throw if the JSON field has an - * unexpected type. + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .email() + * .name() + * ``` + * + * @throws IllegalStateException if any required field is unset. */ - @JsonProperty("accounting_sync_configuration") - @ExcludeMissing - fun _accountingSyncConfiguration(): JsonField = - accountingSyncConfiguration + fun build(): CustomerCreateParams = + CustomerCreateParams( + body.build(), + additionalHeaders.build(), + additionalQueryParams.build(), + ) + } + + @JvmSynthetic internal fun _body(): Body = body + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body + private constructor( + private val email: JsonField, + private val name: JsonField, + private val accountingSyncConfiguration: JsonField, + private val additionalEmails: JsonField>, + private val autoCollection: JsonField, + private val billingAddress: JsonField, + private val currency: JsonField, + private val emailDelivery: JsonField, + private val externalCustomerId: JsonField, + private val hierarchy: JsonField, + private val metadata: JsonField, + private val paymentProvider: JsonField, + private val paymentProviderId: JsonField, + private val reportingConfiguration: JsonField, + private val shippingAddress: JsonField, + private val taxConfiguration: JsonField, + private val taxId: JsonField, + private val timezone: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("email") @ExcludeMissing email: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("accounting_sync_configuration") + @ExcludeMissing + accountingSyncConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("additional_emails") + @ExcludeMissing + additionalEmails: JsonField> = JsonMissing.of(), + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("billing_address") + @ExcludeMissing + billingAddress: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("email_delivery") + @ExcludeMissing + emailDelivery: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + @JsonProperty("hierarchy") + @ExcludeMissing + hierarchy: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("payment_provider") + @ExcludeMissing + paymentProvider: JsonField = JsonMissing.of(), + @JsonProperty("payment_provider_id") + @ExcludeMissing + paymentProviderId: JsonField = JsonMissing.of(), + @JsonProperty("reporting_configuration") + @ExcludeMissing + reportingConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("shipping_address") + @ExcludeMissing + shippingAddress: JsonField = JsonMissing.of(), + @JsonProperty("tax_configuration") + @ExcludeMissing + taxConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("tax_id") @ExcludeMissing taxId: JsonField = JsonMissing.of(), + @JsonProperty("timezone") @ExcludeMissing timezone: JsonField = JsonMissing.of(), + ) : this( + email, + name, + accountingSyncConfiguration, + additionalEmails, + autoCollection, + billingAddress, + currency, + emailDelivery, + externalCustomerId, + hierarchy, + metadata, + paymentProvider, + paymentProviderId, + reportingConfiguration, + shippingAddress, + taxConfiguration, + taxId, + timezone, + mutableMapOf(), + ) /** - * Returns the raw JSON value of [additionalEmails]. + * A valid customer email, to be used for notifications. When Orb triggers payment through a + * payment gateway, this email will be used for any automatically issued receipts. * - * Unlike [additionalEmails], this method doesn't throw if the JSON field has an unexpected - * type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - @JsonProperty("additional_emails") - @ExcludeMissing - fun _additionalEmails(): JsonField> = additionalEmails + fun email(): String = email.getRequired("email") /** - * Returns the raw JSON value of [autoCollection]. + * The full name of the customer * - * Unlike [autoCollection], this method doesn't throw if the JSON field has an unexpected - * type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - @JsonProperty("auto_collection") - @ExcludeMissing - fun _autoCollection(): JsonField = autoCollection + fun name(): String = name.getRequired("name") /** - * Returns the raw JSON value of [billingAddress]. - * - * Unlike [billingAddress], this method doesn't throw if the JSON field has an unexpected - * type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("billing_address") - @ExcludeMissing - fun _billingAddress(): JsonField = billingAddress + fun accountingSyncConfiguration(): Optional = + Optional.ofNullable( + accountingSyncConfiguration.getNullable("accounting_sync_configuration") + ) /** - * Returns the raw JSON value of [currency]. + * Additional email addresses for this customer. If populated, these email addresses will be + * CC'd for customer communications. * - * Unlike [currency], this method doesn't throw if the JSON field has an unexpected type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + fun additionalEmails(): Optional> = + Optional.ofNullable(additionalEmails.getNullable("additional_emails")) /** - * Returns the raw JSON value of [emailDelivery]. + * Used to determine if invoices for this customer will automatically attempt to charge a + * saved payment method, if available. This parameter defaults to `True` when a payment + * provider is provided on customer creation. * - * Unlike [emailDelivery], this method doesn't throw if the JSON field has an unexpected - * type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("email_delivery") - @ExcludeMissing - fun _emailDelivery(): JsonField = emailDelivery + fun autoCollection(): Optional = + Optional.ofNullable(autoCollection.getNullable("auto_collection")) /** - * Returns the raw JSON value of [externalCustomerId]. - * - * Unlike [externalCustomerId], this method doesn't throw if the JSON field has an - * unexpected type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("external_customer_id") - @ExcludeMissing - fun _externalCustomerId(): JsonField = externalCustomerId + fun billingAddress(): Optional = + Optional.ofNullable(billingAddress.getNullable("billing_address")) /** - * Returns the raw JSON value of [hierarchy]. + * An ISO 4217 currency string used for the customer's invoices and balance. If not set at + * creation time, will be set at subscription creation time. * - * Unlike [hierarchy], this method doesn't throw if the JSON field has an unexpected type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("hierarchy") - @ExcludeMissing - fun _hierarchy(): JsonField = hierarchy + fun currency(): Optional = Optional.ofNullable(currency.getNullable("currency")) /** - * Returns the raw JSON value of [metadata]. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun emailDelivery(): Optional = + Optional.ofNullable(emailDelivery.getNullable("email_delivery")) + + /** + * An optional user-defined ID for this customer resource, used throughout the system as an + * alias for this Customer. Use this field to identify a customer by an existing identifier + * in your system. * - * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata + fun externalCustomerId(): Optional = + Optional.ofNullable(externalCustomerId.getNullable("external_customer_id")) /** - * Returns the raw JSON value of [paymentProvider]. + * The hierarchical relationships for this customer. * - * Unlike [paymentProvider], this method doesn't throw if the JSON field has an unexpected - * type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("payment_provider") - @ExcludeMissing - fun _paymentProvider(): JsonField = paymentProvider + fun hierarchy(): Optional = + Optional.ofNullable(hierarchy.getNullable("hierarchy")) /** - * Returns the raw JSON value of [paymentProviderId]. + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. * - * Unlike [paymentProviderId], this method doesn't throw if the JSON field has an unexpected - * type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("payment_provider_id") - @ExcludeMissing - fun _paymentProviderId(): JsonField = paymentProviderId + fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) /** - * Returns the raw JSON value of [reportingConfiguration]. + * This is used for creating charges or invoices in an external system via Orb. When not in + * test mode, the connection must first be configured in the Orb webapp. * - * Unlike [reportingConfiguration], this method doesn't throw if the JSON field has an + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun paymentProvider(): Optional = + Optional.ofNullable(paymentProvider.getNullable("payment_provider")) + + /** + * The ID of this customer in an external payments solution, such as Stripe. This is used + * for creating charges or invoices in the external system via Orb. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun paymentProviderId(): Optional = + Optional.ofNullable(paymentProviderId.getNullable("payment_provider_id")) + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun reportingConfiguration(): Optional = + Optional.ofNullable(reportingConfiguration.getNullable("reporting_configuration")) + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun shippingAddress(): Optional = + Optional.ofNullable(shippingAddress.getNullable("shipping_address")) + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun taxConfiguration(): Optional = + Optional.ofNullable(taxConfiguration.getNullable("tax_configuration")) + + /** + * Tax IDs are commonly required to be displayed on customer invoices, which are added to + * the headers of invoices. + * + * ### Supported Tax ID Countries and Types + * |Country |Type |Description | + * |--------------------|------------|-------------------------------------------------------------------------------------------------------| + * |Andorra |`ad_nrt` |Andorran NRT Number | + * |Argentina |`ar_cuit` |Argentinian Tax ID Number | + * |Australia |`au_abn` |Australian Business Number (AU ABN) | + * |Australia |`au_arn` |Australian Taxation Office Reference Number | + * |Austria |`eu_vat` |European VAT Number | + * |Bahrain |`bh_vat` |Bahraini VAT Number | + * |Belgium |`eu_vat` |European VAT Number | + * |Bolivia |`bo_tin` |Bolivian Tax ID | + * |Brazil |`br_cnpj` |Brazilian CNPJ Number | + * |Brazil |`br_cpf` |Brazilian CPF Number | + * |Bulgaria |`bg_uic` |Bulgaria Unified Identification Code | + * |Bulgaria |`eu_vat` |European VAT Number | + * |Canada |`ca_bn` |Canadian BN | + * |Canada |`ca_gst_hst`|Canadian GST/HST Number | + * |Canada |`ca_pst_bc` |Canadian PST Number (British Columbia) | + * |Canada |`ca_pst_mb` |Canadian PST Number (Manitoba) | + * |Canada |`ca_pst_sk` |Canadian PST Number (Saskatchewan) | + * |Canada |`ca_qst` |Canadian QST Number (Québec) | + * |Chile |`cl_tin` |Chilean TIN | + * |China |`cn_tin` |Chinese Tax ID | + * |Colombia |`co_nit` |Colombian NIT Number | + * |Costa Rica |`cr_tin` |Costa Rican Tax ID | + * |Croatia |`eu_vat` |European VAT Number | + * |Cyprus |`eu_vat` |European VAT Number | + * |Czech Republic |`eu_vat` |European VAT Number | + * |Denmark |`eu_vat` |European VAT Number | + * |Dominican Republic |`do_rcn` |Dominican RCN Number | + * |Ecuador |`ec_ruc` |Ecuadorian RUC Number | + * |Egypt |`eg_tin` |Egyptian Tax Identification Number | + * |El Salvador |`sv_nit` |El Salvadorian NIT Number | + * |Estonia |`eu_vat` |European VAT Number | + * |EU |`eu_oss_vat`|European One Stop Shop VAT Number for non-Union scheme | + * |Finland |`eu_vat` |European VAT Number | + * |France |`eu_vat` |European VAT Number | + * |Georgia |`ge_vat` |Georgian VAT | + * |Germany |`eu_vat` |European VAT Number | + * |Greece |`eu_vat` |European VAT Number | + * |Hong Kong |`hk_br` |Hong Kong BR Number | + * |Hungary |`eu_vat` |European VAT Number | + * |Hungary |`hu_tin` |Hungary Tax Number (adószám) | + * |Iceland |`is_vat` |Icelandic VAT | + * |India |`in_gst` |Indian GST Number | + * |Indonesia |`id_npwp` |Indonesian NPWP Number | + * |Ireland |`eu_vat` |European VAT Number | + * |Israel |`il_vat` |Israel VAT | + * |Italy |`eu_vat` |European VAT Number | + * |Japan |`jp_cn` |Japanese Corporate Number (_Hōjin Bangō_) | + * |Japan |`jp_rn` |Japanese Registered Foreign Businesses' Registration Number (_Tōroku Kokugai Jigyōsha no Tōroku Bangō_)| + * |Japan |`jp_trn` |Japanese Tax Registration Number (_Tōroku Bangō_) | + * |Kazakhstan |`kz_bin` |Kazakhstani Business Identification Number | + * |Kenya |`ke_pin` |Kenya Revenue Authority Personal Identification Number | + * |Latvia |`eu_vat` |European VAT Number | + * |Liechtenstein |`li_uid` |Liechtensteinian UID Number | + * |Lithuania |`eu_vat` |European VAT Number | + * |Luxembourg |`eu_vat` |European VAT Number | + * |Malaysia |`my_frp` |Malaysian FRP Number | + * |Malaysia |`my_itn` |Malaysian ITN | + * |Malaysia |`my_sst` |Malaysian SST Number | + * |Malta |`eu_vat ` |European VAT Number | + * |Mexico |`mx_rfc` |Mexican RFC Number | + * |Netherlands |`eu_vat` |European VAT Number | + * |New Zealand |`nz_gst` |New Zealand GST Number | + * |Nigeria |`ng_tin` |Nigerian Tax Identification Number | + * |Norway |`no_vat` |Norwegian VAT Number | + * |Norway |`no_voec` |Norwegian VAT on e-commerce Number | + * |Oman |`om_vat` |Omani VAT Number | + * |Peru |`pe_ruc` |Peruvian RUC Number | + * |Philippines |`ph_tin ` |Philippines Tax Identification Number | + * |Poland |`eu_vat` |European VAT Number | + * |Portugal |`eu_vat` |European VAT Number | + * |Romania |`eu_vat` |European VAT Number | + * |Romania |`ro_tin` |Romanian Tax ID Number | + * |Russia |`ru_inn` |Russian INN | + * |Russia |`ru_kpp` |Russian KPP | + * |Saudi Arabia |`sa_vat` |Saudi Arabia VAT | + * |Serbia |`rs_pib` |Serbian PIB Number | + * |Singapore |`sg_gst` |Singaporean GST | + * |Singapore |`sg_uen` |Singaporean UEN | + * |Slovakia |`eu_vat` |European VAT Number | + * |Slovenia |`eu_vat` |European VAT Number | + * |Slovenia |`si_tin` |Slovenia Tax Number (davčna številka) | + * |South Africa |`za_vat` |South African VAT Number | + * |South Korea |`kr_brn` |Korean BRN | + * |Spain |`es_cif` |Spanish NIF Number (previously Spanish CIF Number) | + * |Spain |`eu_vat` |European VAT Number | + * |Sweden |`eu_vat` |European VAT Number | + * |Switzerland |`ch_vat` |Switzerland VAT Number | + * |Taiwan |`tw_vat` |Taiwanese VAT | + * |Thailand |`th_vat` |Thai VAT | + * |Turkey |`tr_tin` |Turkish Tax Identification Number | + * |Ukraine |`ua_vat` |Ukrainian VAT | + * |United Arab Emirates|`ae_trn` |United Arab Emirates TRN | + * |United Kingdom |`eu_vat` |Northern Ireland VAT Number | + * |United Kingdom |`gb_vat` |United Kingdom VAT Number | + * |United States |`us_ein` |United States EIN | + * |Uruguay |`uy_ruc` |Uruguayan RUC Number | + * |Venezuela |`ve_rif` |Venezuelan RIF Number | + * |Vietnam |`vn_tin` |Vietnamese Tax ID Number | + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun taxId(): Optional = Optional.ofNullable(taxId.getNullable("tax_id")) + + /** + * A timezone identifier from the IANA timezone database, such as `"America/Los_Angeles"`. + * This defaults to your account's timezone if not set. This cannot be changed after + * customer creation. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun timezone(): Optional = Optional.ofNullable(timezone.getNullable("timezone")) + + /** + * Returns the raw JSON value of [email]. + * + * Unlike [email], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("email") @ExcludeMissing fun _email(): JsonField = email + + /** + * Returns the raw JSON value of [name]. + * + * Unlike [name], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + + /** + * Returns the raw JSON value of [accountingSyncConfiguration]. + * + * Unlike [accountingSyncConfiguration], this method doesn't throw if the JSON field has an * unexpected type. */ - @JsonProperty("reporting_configuration") + @JsonProperty("accounting_sync_configuration") @ExcludeMissing - fun _reportingConfiguration(): JsonField = reportingConfiguration + fun _accountingSyncConfiguration(): JsonField = + accountingSyncConfiguration /** - * Returns the raw JSON value of [shippingAddress]. + * Returns the raw JSON value of [additionalEmails]. * - * Unlike [shippingAddress], this method doesn't throw if the JSON field has an unexpected + * Unlike [additionalEmails], this method doesn't throw if the JSON field has an unexpected * type. */ - @JsonProperty("shipping_address") + @JsonProperty("additional_emails") @ExcludeMissing - fun _shippingAddress(): JsonField = shippingAddress + fun _additionalEmails(): JsonField> = additionalEmails /** - * Returns the raw JSON value of [taxConfiguration]. + * Returns the raw JSON value of [autoCollection]. * - * Unlike [taxConfiguration], this method doesn't throw if the JSON field has an unexpected + * Unlike [autoCollection], this method doesn't throw if the JSON field has an unexpected * type. */ - @JsonProperty("tax_configuration") + @JsonProperty("auto_collection") @ExcludeMissing - fun _taxConfiguration(): JsonField = taxConfiguration + fun _autoCollection(): JsonField = autoCollection /** - * Returns the raw JSON value of [taxId]. + * Returns the raw JSON value of [billingAddress]. * - * Unlike [taxId], this method doesn't throw if the JSON field has an unexpected type. + * Unlike [billingAddress], this method doesn't throw if the JSON field has an unexpected + * type. */ - @JsonProperty("tax_id") @ExcludeMissing fun _taxId(): JsonField = taxId + @JsonProperty("billing_address") + @ExcludeMissing + fun _billingAddress(): JsonField = billingAddress /** - * Returns the raw JSON value of [timezone]. + * Returns the raw JSON value of [currency]. * - * Unlike [timezone], this method doesn't throw if the JSON field has an unexpected type. + * Unlike [currency], this method doesn't throw if the JSON field has an unexpected type. */ - @JsonProperty("timezone") @ExcludeMissing fun _timezone(): JsonField = timezone + @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency - @JsonAnyGetter + /** + * Returns the raw JSON value of [emailDelivery]. + * + * Unlike [emailDelivery], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("email_delivery") @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _emailDelivery(): JsonField = emailDelivery - private var validated: Boolean = false + /** + * Returns the raw JSON value of [externalCustomerId]. + * + * Unlike [externalCustomerId], this method doesn't throw if the JSON field has an + * unexpected type. + */ + @JsonProperty("external_customer_id") + @ExcludeMissing + fun _externalCustomerId(): JsonField = externalCustomerId - fun validate(): Body = apply { - if (validated) { - return@apply - } + /** + * Returns the raw JSON value of [hierarchy]. + * + * Unlike [hierarchy], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("hierarchy") + @ExcludeMissing + fun _hierarchy(): JsonField = hierarchy - email() - name() - accountingSyncConfiguration().ifPresent { it.validate() } - additionalEmails() - autoCollection() - billingAddress().ifPresent { it.validate() } - currency() - emailDelivery() - externalCustomerId() - hierarchy().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - paymentProvider() - paymentProviderId() - reportingConfiguration().ifPresent { it.validate() } - shippingAddress().ifPresent { it.validate() } - taxConfiguration().ifPresent { it.validate() } - taxId().ifPresent { it.validate() } - timezone() - validated = true + /** + * Returns the raw JSON value of [metadata]. + * + * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata + + /** + * Returns the raw JSON value of [paymentProvider]. + * + * Unlike [paymentProvider], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("payment_provider") + @ExcludeMissing + fun _paymentProvider(): JsonField = paymentProvider + + /** + * Returns the raw JSON value of [paymentProviderId]. + * + * Unlike [paymentProviderId], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("payment_provider_id") + @ExcludeMissing + fun _paymentProviderId(): JsonField = paymentProviderId + + /** + * Returns the raw JSON value of [reportingConfiguration]. + * + * Unlike [reportingConfiguration], this method doesn't throw if the JSON field has an + * unexpected type. + */ + @JsonProperty("reporting_configuration") + @ExcludeMissing + fun _reportingConfiguration(): JsonField = reportingConfiguration + + /** + * Returns the raw JSON value of [shippingAddress]. + * + * Unlike [shippingAddress], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("shipping_address") + @ExcludeMissing + fun _shippingAddress(): JsonField = shippingAddress + + /** + * Returns the raw JSON value of [taxConfiguration]. + * + * Unlike [taxConfiguration], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("tax_configuration") + @ExcludeMissing + fun _taxConfiguration(): JsonField = taxConfiguration + + /** + * Returns the raw JSON value of [taxId]. + * + * Unlike [taxId], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("tax_id") @ExcludeMissing fun _taxId(): JsonField = taxId + + /** + * Returns the raw JSON value of [timezone]. + * + * Unlike [timezone], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("timezone") @ExcludeMissing fun _timezone(): JsonField = timezone + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -1563,779 +2250,129 @@ private constructor( * * You should usually call [Builder.timezone] with a well-typed [String] value instead. * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun timezone(timezone: JsonField) = apply { this.timezone = timezone } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .email() - * .name() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body( - checkRequired("email", email), - checkRequired("name", name), - accountingSyncConfiguration, - (additionalEmails ?: JsonMissing.of()).map { it.toImmutable() }, - autoCollection, - billingAddress, - currency, - emailDelivery, - externalCustomerId, - hierarchy, - metadata, - paymentProvider, - paymentProviderId, - reportingConfiguration, - shippingAddress, - taxConfiguration, - taxId, - timezone, - additionalProperties.toImmutable(), - ) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && email == other.email && name == other.name && accountingSyncConfiguration == other.accountingSyncConfiguration && additionalEmails == other.additionalEmails && autoCollection == other.autoCollection && billingAddress == other.billingAddress && currency == other.currency && emailDelivery == other.emailDelivery && externalCustomerId == other.externalCustomerId && hierarchy == other.hierarchy && metadata == other.metadata && paymentProvider == other.paymentProvider && paymentProviderId == other.paymentProviderId && reportingConfiguration == other.reportingConfiguration && shippingAddress == other.shippingAddress && taxConfiguration == other.taxConfiguration && taxId == other.taxId && timezone == other.timezone && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(email, name, accountingSyncConfiguration, additionalEmails, autoCollection, billingAddress, currency, emailDelivery, externalCustomerId, hierarchy, metadata, paymentProvider, paymentProviderId, reportingConfiguration, shippingAddress, taxConfiguration, taxId, timezone, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{email=$email, name=$name, accountingSyncConfiguration=$accountingSyncConfiguration, additionalEmails=$additionalEmails, autoCollection=$autoCollection, billingAddress=$billingAddress, currency=$currency, emailDelivery=$emailDelivery, externalCustomerId=$externalCustomerId, hierarchy=$hierarchy, metadata=$metadata, paymentProvider=$paymentProvider, paymentProviderId=$paymentProviderId, reportingConfiguration=$reportingConfiguration, shippingAddress=$shippingAddress, taxConfiguration=$taxConfiguration, taxId=$taxId, timezone=$timezone, additionalProperties=$additionalProperties}" - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of [CustomerCreateParams]. - * - * The following fields are required: - * ```java - * .email() - * .name() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [CustomerCreateParams]. */ - @NoAutoDetect - class Builder internal constructor() { - - private var body: Body.Builder = Body.builder() - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() - - @JvmSynthetic - internal fun from(customerCreateParams: CustomerCreateParams) = apply { - body = customerCreateParams.body.toBuilder() - additionalHeaders = customerCreateParams.additionalHeaders.toBuilder() - additionalQueryParams = customerCreateParams.additionalQueryParams.toBuilder() - } - - /** - * A valid customer email, to be used for notifications. When Orb triggers payment through a - * payment gateway, this email will be used for any automatically issued receipts. - */ - fun email(email: String) = apply { body.email(email) } - - /** - * Sets [Builder.email] to an arbitrary JSON value. - * - * You should usually call [Builder.email] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun email(email: JsonField) = apply { body.email(email) } - - /** The full name of the customer */ - fun name(name: String) = apply { body.name(name) } - - /** - * Sets [Builder.name] to an arbitrary JSON value. - * - * You should usually call [Builder.name] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun name(name: JsonField) = apply { body.name(name) } - - fun accountingSyncConfiguration(accountingSyncConfiguration: AccountingSyncConfiguration?) = - apply { - body.accountingSyncConfiguration(accountingSyncConfiguration) - } - - /** - * Alias for calling [Builder.accountingSyncConfiguration] with - * `accountingSyncConfiguration.orElse(null)`. - */ - fun accountingSyncConfiguration( - accountingSyncConfiguration: Optional - ) = accountingSyncConfiguration(accountingSyncConfiguration.getOrNull()) - - /** - * Sets [Builder.accountingSyncConfiguration] to an arbitrary JSON value. - * - * You should usually call [Builder.accountingSyncConfiguration] with a well-typed - * [AccountingSyncConfiguration] value instead. This method is primarily for setting the - * field to an undocumented or not yet supported value. - */ - fun accountingSyncConfiguration( - accountingSyncConfiguration: JsonField - ) = apply { body.accountingSyncConfiguration(accountingSyncConfiguration) } - - /** - * Additional email addresses for this customer. If populated, these email addresses will be - * CC'd for customer communications. - */ - fun additionalEmails(additionalEmails: List?) = apply { - body.additionalEmails(additionalEmails) - } - - /** Alias for calling [Builder.additionalEmails] with `additionalEmails.orElse(null)`. */ - fun additionalEmails(additionalEmails: Optional>) = - additionalEmails(additionalEmails.getOrNull()) - - /** - * Sets [Builder.additionalEmails] to an arbitrary JSON value. - * - * You should usually call [Builder.additionalEmails] with a well-typed `List` value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun additionalEmails(additionalEmails: JsonField>) = apply { - body.additionalEmails(additionalEmails) - } - - /** - * Adds a single [String] to [additionalEmails]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addAdditionalEmail(additionalEmail: String) = apply { - body.addAdditionalEmail(additionalEmail) - } - - /** - * Used to determine if invoices for this customer will automatically attempt to charge a - * saved payment method, if available. This parameter defaults to `True` when a payment - * provider is provided on customer creation. - */ - fun autoCollection(autoCollection: Boolean?) = apply { body.autoCollection(autoCollection) } - - /** - * Alias for [Builder.autoCollection]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun autoCollection(autoCollection: Boolean) = autoCollection(autoCollection as Boolean?) - - /** Alias for calling [Builder.autoCollection] with `autoCollection.orElse(null)`. */ - fun autoCollection(autoCollection: Optional) = - autoCollection(autoCollection.getOrNull()) - - /** - * Sets [Builder.autoCollection] to an arbitrary JSON value. - * - * You should usually call [Builder.autoCollection] with a well-typed [Boolean] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun autoCollection(autoCollection: JsonField) = apply { - body.autoCollection(autoCollection) - } - - fun billingAddress(billingAddress: BillingAddress?) = apply { - body.billingAddress(billingAddress) - } - - /** Alias for calling [Builder.billingAddress] with `billingAddress.orElse(null)`. */ - fun billingAddress(billingAddress: Optional) = - billingAddress(billingAddress.getOrNull()) - - /** - * Sets [Builder.billingAddress] to an arbitrary JSON value. - * - * You should usually call [Builder.billingAddress] with a well-typed [BillingAddress] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun billingAddress(billingAddress: JsonField) = apply { - body.billingAddress(billingAddress) - } - - /** - * An ISO 4217 currency string used for the customer's invoices and balance. If not set at - * creation time, will be set at subscription creation time. - */ - fun currency(currency: String?) = apply { body.currency(currency) } - - /** Alias for calling [Builder.currency] with `currency.orElse(null)`. */ - fun currency(currency: Optional) = currency(currency.getOrNull()) - - /** - * Sets [Builder.currency] to an arbitrary JSON value. - * - * You should usually call [Builder.currency] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun currency(currency: JsonField) = apply { body.currency(currency) } - - fun emailDelivery(emailDelivery: Boolean?) = apply { body.emailDelivery(emailDelivery) } - - /** - * Alias for [Builder.emailDelivery]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun emailDelivery(emailDelivery: Boolean) = emailDelivery(emailDelivery as Boolean?) - - /** Alias for calling [Builder.emailDelivery] with `emailDelivery.orElse(null)`. */ - fun emailDelivery(emailDelivery: Optional) = - emailDelivery(emailDelivery.getOrNull()) - - /** - * Sets [Builder.emailDelivery] to an arbitrary JSON value. - * - * You should usually call [Builder.emailDelivery] with a well-typed [Boolean] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun emailDelivery(emailDelivery: JsonField) = apply { - body.emailDelivery(emailDelivery) - } - - /** - * An optional user-defined ID for this customer resource, used throughout the system as an - * alias for this Customer. Use this field to identify a customer by an existing identifier - * in your system. - */ - fun externalCustomerId(externalCustomerId: String?) = apply { - body.externalCustomerId(externalCustomerId) - } - - /** - * Alias for calling [Builder.externalCustomerId] with `externalCustomerId.orElse(null)`. - */ - fun externalCustomerId(externalCustomerId: Optional) = - externalCustomerId(externalCustomerId.getOrNull()) - - /** - * Sets [Builder.externalCustomerId] to an arbitrary JSON value. - * - * You should usually call [Builder.externalCustomerId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun externalCustomerId(externalCustomerId: JsonField) = apply { - body.externalCustomerId(externalCustomerId) - } - - /** The hierarchical relationships for this customer. */ - fun hierarchy(hierarchy: Hierarchy?) = apply { body.hierarchy(hierarchy) } - - /** Alias for calling [Builder.hierarchy] with `hierarchy.orElse(null)`. */ - fun hierarchy(hierarchy: Optional) = hierarchy(hierarchy.getOrNull()) - - /** - * Sets [Builder.hierarchy] to an arbitrary JSON value. - * - * You should usually call [Builder.hierarchy] with a well-typed [Hierarchy] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun hierarchy(hierarchy: JsonField) = apply { body.hierarchy(hierarchy) } - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. - */ - fun metadata(metadata: Metadata?) = apply { body.metadata(metadata) } - - /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ - fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) - - /** - * Sets [Builder.metadata] to an arbitrary JSON value. - * - * You should usually call [Builder.metadata] with a well-typed [Metadata] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun metadata(metadata: JsonField) = apply { body.metadata(metadata) } - - /** - * This is used for creating charges or invoices in an external system via Orb. When not in - * test mode, the connection must first be configured in the Orb webapp. - */ - fun paymentProvider(paymentProvider: PaymentProvider?) = apply { - body.paymentProvider(paymentProvider) - } - - /** Alias for calling [Builder.paymentProvider] with `paymentProvider.orElse(null)`. */ - fun paymentProvider(paymentProvider: Optional) = - paymentProvider(paymentProvider.getOrNull()) - - /** - * Sets [Builder.paymentProvider] to an arbitrary JSON value. - * - * You should usually call [Builder.paymentProvider] with a well-typed [PaymentProvider] - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun paymentProvider(paymentProvider: JsonField) = apply { - body.paymentProvider(paymentProvider) - } - - /** - * The ID of this customer in an external payments solution, such as Stripe. This is used - * for creating charges or invoices in the external system via Orb. - */ - fun paymentProviderId(paymentProviderId: String?) = apply { - body.paymentProviderId(paymentProviderId) - } - - /** Alias for calling [Builder.paymentProviderId] with `paymentProviderId.orElse(null)`. */ - fun paymentProviderId(paymentProviderId: Optional) = - paymentProviderId(paymentProviderId.getOrNull()) - - /** - * Sets [Builder.paymentProviderId] to an arbitrary JSON value. - * - * You should usually call [Builder.paymentProviderId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun paymentProviderId(paymentProviderId: JsonField) = apply { - body.paymentProviderId(paymentProviderId) - } - - fun reportingConfiguration(reportingConfiguration: ReportingConfiguration?) = apply { - body.reportingConfiguration(reportingConfiguration) - } - - /** - * Alias for calling [Builder.reportingConfiguration] with - * `reportingConfiguration.orElse(null)`. - */ - fun reportingConfiguration(reportingConfiguration: Optional) = - reportingConfiguration(reportingConfiguration.getOrNull()) - - /** - * Sets [Builder.reportingConfiguration] to an arbitrary JSON value. - * - * You should usually call [Builder.reportingConfiguration] with a well-typed - * [ReportingConfiguration] value instead. This method is primarily for setting the field to - * an undocumented or not yet supported value. - */ - fun reportingConfiguration(reportingConfiguration: JsonField) = - apply { - body.reportingConfiguration(reportingConfiguration) - } - - fun shippingAddress(shippingAddress: ShippingAddress?) = apply { - body.shippingAddress(shippingAddress) - } - - /** Alias for calling [Builder.shippingAddress] with `shippingAddress.orElse(null)`. */ - fun shippingAddress(shippingAddress: Optional) = - shippingAddress(shippingAddress.getOrNull()) - - /** - * Sets [Builder.shippingAddress] to an arbitrary JSON value. - * - * You should usually call [Builder.shippingAddress] with a well-typed [ShippingAddress] - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun shippingAddress(shippingAddress: JsonField) = apply { - body.shippingAddress(shippingAddress) - } - - fun taxConfiguration(taxConfiguration: TaxConfiguration?) = apply { - body.taxConfiguration(taxConfiguration) - } - - /** Alias for calling [Builder.taxConfiguration] with `taxConfiguration.orElse(null)`. */ - fun taxConfiguration(taxConfiguration: Optional) = - taxConfiguration(taxConfiguration.getOrNull()) - - /** - * Sets [Builder.taxConfiguration] to an arbitrary JSON value. - * - * You should usually call [Builder.taxConfiguration] with a well-typed [TaxConfiguration] - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun taxConfiguration(taxConfiguration: JsonField) = apply { - body.taxConfiguration(taxConfiguration) - } - - /** - * Alias for calling [taxConfiguration] with `TaxConfiguration.ofNewAvalara(newAvalara)`. - */ - fun taxConfiguration(newAvalara: TaxConfiguration.NewAvalaraTaxConfiguration) = apply { - body.taxConfiguration(newAvalara) - } - - /** - * Alias for calling [taxConfiguration] with the following: - * ```java - * TaxConfiguration.NewAvalaraTaxConfiguration.builder() - * .taxProvider(CustomerCreateParams.TaxConfiguration.NewAvalaraTaxConfiguration.TaxProvider.AVALARA) - * .taxExempt(taxExempt) - * .build() - * ``` - */ - fun newAvalaraTaxConfiguration(taxExempt: Boolean) = apply { - body.newAvalaraTaxConfiguration(taxExempt) - } - - /** Alias for calling [taxConfiguration] with `TaxConfiguration.ofNewTaxJar(newTaxJar)`. */ - fun taxConfiguration(newTaxJar: TaxConfiguration.NewTaxJarConfiguration) = apply { - body.taxConfiguration(newTaxJar) - } - - /** - * Alias for calling [taxConfiguration] with the following: - * ```java - * TaxConfiguration.NewTaxJarConfiguration.builder() - * .taxProvider(CustomerCreateParams.TaxConfiguration.NewTaxJarConfiguration.TaxProvider.TAXJAR) - * .taxExempt(taxExempt) - * .build() - * ``` - */ - fun newTaxJarTaxConfiguration(taxExempt: Boolean) = apply { - body.newTaxJarTaxConfiguration(taxExempt) - } - - /** - * Tax IDs are commonly required to be displayed on customer invoices, which are added to - * the headers of invoices. - * - * ### Supported Tax ID Countries and Types - * |Country |Type |Description | - * |--------------------|------------|-------------------------------------------------------------------------------------------------------| - * |Andorra |`ad_nrt` |Andorran NRT Number | - * |Argentina |`ar_cuit` |Argentinian Tax ID Number | - * |Australia |`au_abn` |Australian Business Number (AU ABN) | - * |Australia |`au_arn` |Australian Taxation Office Reference Number | - * |Austria |`eu_vat` |European VAT Number | - * |Bahrain |`bh_vat` |Bahraini VAT Number | - * |Belgium |`eu_vat` |European VAT Number | - * |Bolivia |`bo_tin` |Bolivian Tax ID | - * |Brazil |`br_cnpj` |Brazilian CNPJ Number | - * |Brazil |`br_cpf` |Brazilian CPF Number | - * |Bulgaria |`bg_uic` |Bulgaria Unified Identification Code | - * |Bulgaria |`eu_vat` |European VAT Number | - * |Canada |`ca_bn` |Canadian BN | - * |Canada |`ca_gst_hst`|Canadian GST/HST Number | - * |Canada |`ca_pst_bc` |Canadian PST Number (British Columbia) | - * |Canada |`ca_pst_mb` |Canadian PST Number (Manitoba) | - * |Canada |`ca_pst_sk` |Canadian PST Number (Saskatchewan) | - * |Canada |`ca_qst` |Canadian QST Number (Québec) | - * |Chile |`cl_tin` |Chilean TIN | - * |China |`cn_tin` |Chinese Tax ID | - * |Colombia |`co_nit` |Colombian NIT Number | - * |Costa Rica |`cr_tin` |Costa Rican Tax ID | - * |Croatia |`eu_vat` |European VAT Number | - * |Cyprus |`eu_vat` |European VAT Number | - * |Czech Republic |`eu_vat` |European VAT Number | - * |Denmark |`eu_vat` |European VAT Number | - * |Dominican Republic |`do_rcn` |Dominican RCN Number | - * |Ecuador |`ec_ruc` |Ecuadorian RUC Number | - * |Egypt |`eg_tin` |Egyptian Tax Identification Number | - * |El Salvador |`sv_nit` |El Salvadorian NIT Number | - * |Estonia |`eu_vat` |European VAT Number | - * |EU |`eu_oss_vat`|European One Stop Shop VAT Number for non-Union scheme | - * |Finland |`eu_vat` |European VAT Number | - * |France |`eu_vat` |European VAT Number | - * |Georgia |`ge_vat` |Georgian VAT | - * |Germany |`eu_vat` |European VAT Number | - * |Greece |`eu_vat` |European VAT Number | - * |Hong Kong |`hk_br` |Hong Kong BR Number | - * |Hungary |`eu_vat` |European VAT Number | - * |Hungary |`hu_tin` |Hungary Tax Number (adószám) | - * |Iceland |`is_vat` |Icelandic VAT | - * |India |`in_gst` |Indian GST Number | - * |Indonesia |`id_npwp` |Indonesian NPWP Number | - * |Ireland |`eu_vat` |European VAT Number | - * |Israel |`il_vat` |Israel VAT | - * |Italy |`eu_vat` |European VAT Number | - * |Japan |`jp_cn` |Japanese Corporate Number (_Hōjin Bangō_) | - * |Japan |`jp_rn` |Japanese Registered Foreign Businesses' Registration Number (_Tōroku Kokugai Jigyōsha no Tōroku Bangō_)| - * |Japan |`jp_trn` |Japanese Tax Registration Number (_Tōroku Bangō_) | - * |Kazakhstan |`kz_bin` |Kazakhstani Business Identification Number | - * |Kenya |`ke_pin` |Kenya Revenue Authority Personal Identification Number | - * |Latvia |`eu_vat` |European VAT Number | - * |Liechtenstein |`li_uid` |Liechtensteinian UID Number | - * |Lithuania |`eu_vat` |European VAT Number | - * |Luxembourg |`eu_vat` |European VAT Number | - * |Malaysia |`my_frp` |Malaysian FRP Number | - * |Malaysia |`my_itn` |Malaysian ITN | - * |Malaysia |`my_sst` |Malaysian SST Number | - * |Malta |`eu_vat ` |European VAT Number | - * |Mexico |`mx_rfc` |Mexican RFC Number | - * |Netherlands |`eu_vat` |European VAT Number | - * |New Zealand |`nz_gst` |New Zealand GST Number | - * |Nigeria |`ng_tin` |Nigerian Tax Identification Number | - * |Norway |`no_vat` |Norwegian VAT Number | - * |Norway |`no_voec` |Norwegian VAT on e-commerce Number | - * |Oman |`om_vat` |Omani VAT Number | - * |Peru |`pe_ruc` |Peruvian RUC Number | - * |Philippines |`ph_tin ` |Philippines Tax Identification Number | - * |Poland |`eu_vat` |European VAT Number | - * |Portugal |`eu_vat` |European VAT Number | - * |Romania |`eu_vat` |European VAT Number | - * |Romania |`ro_tin` |Romanian Tax ID Number | - * |Russia |`ru_inn` |Russian INN | - * |Russia |`ru_kpp` |Russian KPP | - * |Saudi Arabia |`sa_vat` |Saudi Arabia VAT | - * |Serbia |`rs_pib` |Serbian PIB Number | - * |Singapore |`sg_gst` |Singaporean GST | - * |Singapore |`sg_uen` |Singaporean UEN | - * |Slovakia |`eu_vat` |European VAT Number | - * |Slovenia |`eu_vat` |European VAT Number | - * |Slovenia |`si_tin` |Slovenia Tax Number (davčna številka) | - * |South Africa |`za_vat` |South African VAT Number | - * |South Korea |`kr_brn` |Korean BRN | - * |Spain |`es_cif` |Spanish NIF Number (previously Spanish CIF Number) | - * |Spain |`eu_vat` |European VAT Number | - * |Sweden |`eu_vat` |European VAT Number | - * |Switzerland |`ch_vat` |Switzerland VAT Number | - * |Taiwan |`tw_vat` |Taiwanese VAT | - * |Thailand |`th_vat` |Thai VAT | - * |Turkey |`tr_tin` |Turkish Tax Identification Number | - * |Ukraine |`ua_vat` |Ukrainian VAT | - * |United Arab Emirates|`ae_trn` |United Arab Emirates TRN | - * |United Kingdom |`eu_vat` |Northern Ireland VAT Number | - * |United Kingdom |`gb_vat` |United Kingdom VAT Number | - * |United States |`us_ein` |United States EIN | - * |Uruguay |`uy_ruc` |Uruguayan RUC Number | - * |Venezuela |`ve_rif` |Venezuelan RIF Number | - * |Vietnam |`vn_tin` |Vietnamese Tax ID Number | - */ - fun taxId(taxId: TaxId?) = apply { body.taxId(taxId) } - - /** Alias for calling [Builder.taxId] with `taxId.orElse(null)`. */ - fun taxId(taxId: Optional) = taxId(taxId.getOrNull()) - - /** - * Sets [Builder.taxId] to an arbitrary JSON value. - * - * You should usually call [Builder.taxId] with a well-typed [TaxId] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun taxId(taxId: JsonField) = apply { body.taxId(taxId) } - - /** - * A timezone identifier from the IANA timezone database, such as `"America/Los_Angeles"`. - * This defaults to your account's timezone if not set. This cannot be changed after - * customer creation. - */ - fun timezone(timezone: String?) = apply { body.timezone(timezone) } - - /** Alias for calling [Builder.timezone] with `timezone.orElse(null)`. */ - fun timezone(timezone: Optional) = timezone(timezone.getOrNull()) - - /** - * Sets [Builder.timezone] to an arbitrary JSON value. - * - * You should usually call [Builder.timezone] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun timezone(timezone: JsonField) = apply { body.timezone(timezone) } - - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { - body.additionalProperties(additionalBodyProperties) - } - - fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - body.putAdditionalProperty(key, value) - } - - fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = - apply { - body.putAllAdditionalProperties(additionalBodyProperties) - } - - fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } - - fun removeAllAdditionalBodyProperties(keys: Set) = apply { - body.removeAllAdditionalProperties(keys) - } - - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } - - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } - - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } - - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } - - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } - - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } - - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } - - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } - - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } - - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + * supported value. + */ + fun timezone(timezone: JsonField) = apply { this.timezone = timezone } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .email() + * .name() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body( + checkRequired("email", email), + checkRequired("name", name), + accountingSyncConfiguration, + (additionalEmails ?: JsonMissing.of()).map { it.toImmutable() }, + autoCollection, + billingAddress, + currency, + emailDelivery, + externalCustomerId, + hierarchy, + metadata, + paymentProvider, + paymentProviderId, + reportingConfiguration, + shippingAddress, + taxConfiguration, + taxId, + timezone, + additionalProperties.toMutableMap(), + ) } - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } + private var validated: Boolean = false - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) + fun validate(): Body = apply { + if (validated) { + return@apply } - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) + email() + name() + accountingSyncConfiguration().ifPresent { it.validate() } + additionalEmails() + autoCollection() + billingAddress().ifPresent { it.validate() } + currency() + emailDelivery() + externalCustomerId() + hierarchy().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + paymentProvider() + paymentProviderId() + reportingConfiguration().ifPresent { it.validate() } + shippingAddress().ifPresent { it.validate() } + taxConfiguration().ifPresent { it.validate() } + taxId().ifPresent { it.validate() } + timezone() + validated = true } - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + return /* spotless:off */ other is Body && email == other.email && name == other.name && accountingSyncConfiguration == other.accountingSyncConfiguration && additionalEmails == other.additionalEmails && autoCollection == other.autoCollection && billingAddress == other.billingAddress && currency == other.currency && emailDelivery == other.emailDelivery && externalCustomerId == other.externalCustomerId && hierarchy == other.hierarchy && metadata == other.metadata && paymentProvider == other.paymentProvider && paymentProviderId == other.paymentProviderId && reportingConfiguration == other.reportingConfiguration && shippingAddress == other.shippingAddress && taxConfiguration == other.taxConfiguration && taxId == other.taxId && timezone == other.timezone && additionalProperties == other.additionalProperties /* spotless:on */ } - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(email, name, accountingSyncConfiguration, additionalEmails, autoCollection, billingAddress, currency, emailDelivery, externalCustomerId, hierarchy, metadata, paymentProvider, paymentProviderId, reportingConfiguration, shippingAddress, taxConfiguration, taxId, timezone, additionalProperties) } + /* spotless:on */ - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) - } + override fun hashCode(): Int = hashCode - /** - * Returns an immutable instance of [CustomerCreateParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .email() - * .name() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): CustomerCreateParams = - CustomerCreateParams( - body.build(), - additionalHeaders.build(), - additionalQueryParams.build(), - ) + override fun toString() = + "Body{email=$email, name=$name, accountingSyncConfiguration=$accountingSyncConfiguration, additionalEmails=$additionalEmails, autoCollection=$autoCollection, billingAddress=$billingAddress, currency=$currency, emailDelivery=$emailDelivery, externalCustomerId=$externalCustomerId, hierarchy=$hierarchy, metadata=$metadata, paymentProvider=$paymentProvider, paymentProviderId=$paymentProviderId, reportingConfiguration=$reportingConfiguration, shippingAddress=$shippingAddress, taxConfiguration=$taxConfiguration, taxId=$taxId, timezone=$timezone, additionalProperties=$additionalProperties}" } - @NoAutoDetect class AccountingSyncConfiguration - @JsonCreator private constructor( - @JsonProperty("accounting_providers") - @ExcludeMissing - private val accountingProviders: JsonField> = JsonMissing.of(), - @JsonProperty("excluded") - @ExcludeMissing - private val excluded: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val accountingProviders: JsonField>, + private val excluded: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("accounting_providers") + @ExcludeMissing + accountingProviders: JsonField> = JsonMissing.of(), + @JsonProperty("excluded") + @ExcludeMissing + excluded: JsonField = JsonMissing.of(), + ) : this(accountingProviders, excluded, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -2366,21 +2403,15 @@ private constructor( */ @JsonProperty("excluded") @ExcludeMissing fun _excluded(): JsonField = excluded + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AccountingSyncConfiguration = apply { - if (validated) { - return@apply - } - - accountingProviders().ifPresent { it.forEach { it.validate() } } - excluded() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2492,24 +2523,39 @@ private constructor( AccountingSyncConfiguration( (accountingProviders ?: JsonMissing.of()).map { it.toImmutable() }, excluded, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): AccountingSyncConfiguration = apply { + if (validated) { + return@apply + } + + accountingProviders().ifPresent { it.forEach { it.validate() } } + excluded() + validated = true + } + class AccountingProvider - @JsonCreator private constructor( - @JsonProperty("external_provider_id") - @ExcludeMissing - private val externalProviderId: JsonField = JsonMissing.of(), - @JsonProperty("provider_type") - @ExcludeMissing - private val providerType: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val externalProviderId: JsonField, + private val providerType: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("external_provider_id") + @ExcludeMissing + externalProviderId: JsonField = JsonMissing.of(), + @JsonProperty("provider_type") + @ExcludeMissing + providerType: JsonField = JsonMissing.of(), + ) : this(externalProviderId, providerType, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2545,21 +2591,15 @@ private constructor( @ExcludeMissing fun _providerType(): JsonField = providerType + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AccountingProvider = apply { - if (validated) { - return@apply - } - - externalProviderId() - providerType() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2657,10 +2697,22 @@ private constructor( AccountingProvider( checkRequired("externalProviderId", externalProviderId), checkRequired("providerType", providerType), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AccountingProvider = apply { + if (validated) { + return@apply + } + + externalProviderId() + providerType() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2697,32 +2749,29 @@ private constructor( "AccountingSyncConfiguration{accountingProviders=$accountingProviders, excluded=$excluded, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingAddress - @JsonCreator private constructor( - @JsonProperty("city") - @ExcludeMissing - private val city: JsonField = JsonMissing.of(), - @JsonProperty("country") - @ExcludeMissing - private val country: JsonField = JsonMissing.of(), - @JsonProperty("line1") - @ExcludeMissing - private val line1: JsonField = JsonMissing.of(), - @JsonProperty("line2") - @ExcludeMissing - private val line2: JsonField = JsonMissing.of(), - @JsonProperty("postal_code") - @ExcludeMissing - private val postalCode: JsonField = JsonMissing.of(), - @JsonProperty("state") - @ExcludeMissing - private val state: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val city: JsonField, + private val country: JsonField, + private val line1: JsonField, + private val line2: JsonField, + private val postalCode: JsonField, + private val state: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("city") @ExcludeMissing city: JsonField = JsonMissing.of(), + @JsonProperty("country") @ExcludeMissing country: JsonField = JsonMissing.of(), + @JsonProperty("line1") @ExcludeMissing line1: JsonField = JsonMissing.of(), + @JsonProperty("line2") @ExcludeMissing line2: JsonField = JsonMissing.of(), + @JsonProperty("postal_code") + @ExcludeMissing + postalCode: JsonField = JsonMissing.of(), + @JsonProperty("state") @ExcludeMissing state: JsonField = JsonMissing.of(), + ) : this(city, country, line1, line2, postalCode, state, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -2804,25 +2853,15 @@ private constructor( */ @JsonProperty("state") @ExcludeMissing fun _state(): JsonField = state + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingAddress = apply { - if (validated) { - return@apply - } - - city() - country() - line1() - line2() - postalCode() - state() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2970,10 +3009,26 @@ private constructor( line2, postalCode, state, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingAddress = apply { + if (validated) { + return@apply + } + + city() + country() + line1() + line2() + postalCode() + state() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2993,20 +3048,23 @@ private constructor( } /** The hierarchical relationships for this customer. */ - @NoAutoDetect class Hierarchy - @JsonCreator private constructor( - @JsonProperty("child_customer_ids") - @ExcludeMissing - private val childCustomerIds: JsonField> = JsonMissing.of(), - @JsonProperty("parent_customer_id") - @ExcludeMissing - private val parentCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val childCustomerIds: JsonField>, + private val parentCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("child_customer_ids") + @ExcludeMissing + childCustomerIds: JsonField> = JsonMissing.of(), + @JsonProperty("parent_customer_id") + @ExcludeMissing + parentCustomerId: JsonField = JsonMissing.of(), + ) : this(childCustomerIds, parentCustomerId, mutableMapOf()) + /** * A list of child customer IDs to add to the hierarchy. The desired child customers must * not already be part of another hierarchy. @@ -3047,21 +3105,15 @@ private constructor( @ExcludeMissing fun _parentCustomerId(): JsonField = parentCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Hierarchy = apply { - if (validated) { - return@apply - } - - childCustomerIds() - parentCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3167,10 +3219,22 @@ private constructor( Hierarchy( (childCustomerIds ?: JsonMissing.of()).map { it.toImmutable() }, parentCustomerId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Hierarchy = apply { + if (validated) { + return@apply + } + + childCustomerIds() + parentCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -3194,27 +3258,20 @@ private constructor( * the value to `null`, and the entire metadata mapping can be cleared by setting `metadata` to * `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3258,7 +3315,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -3401,17 +3468,17 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ReportingConfiguration - @JsonCreator private constructor( - @JsonProperty("exempt") - @ExcludeMissing - private val exempt: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val exempt: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("exempt") @ExcludeMissing exempt: JsonField = JsonMissing.of() + ) : this(exempt, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -3425,20 +3492,15 @@ private constructor( */ @JsonProperty("exempt") @ExcludeMissing fun _exempt(): JsonField = exempt + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ReportingConfiguration = apply { - if (validated) { - return@apply - } - - exempt() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3512,10 +3574,21 @@ private constructor( fun build(): ReportingConfiguration = ReportingConfiguration( checkRequired("exempt", exempt), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): ReportingConfiguration = apply { + if (validated) { + return@apply + } + + exempt() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -3534,32 +3607,29 @@ private constructor( "ReportingConfiguration{exempt=$exempt, additionalProperties=$additionalProperties}" } - @NoAutoDetect class ShippingAddress - @JsonCreator private constructor( - @JsonProperty("city") - @ExcludeMissing - private val city: JsonField = JsonMissing.of(), - @JsonProperty("country") - @ExcludeMissing - private val country: JsonField = JsonMissing.of(), - @JsonProperty("line1") - @ExcludeMissing - private val line1: JsonField = JsonMissing.of(), - @JsonProperty("line2") - @ExcludeMissing - private val line2: JsonField = JsonMissing.of(), - @JsonProperty("postal_code") - @ExcludeMissing - private val postalCode: JsonField = JsonMissing.of(), - @JsonProperty("state") - @ExcludeMissing - private val state: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val city: JsonField, + private val country: JsonField, + private val line1: JsonField, + private val line2: JsonField, + private val postalCode: JsonField, + private val state: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("city") @ExcludeMissing city: JsonField = JsonMissing.of(), + @JsonProperty("country") @ExcludeMissing country: JsonField = JsonMissing.of(), + @JsonProperty("line1") @ExcludeMissing line1: JsonField = JsonMissing.of(), + @JsonProperty("line2") @ExcludeMissing line2: JsonField = JsonMissing.of(), + @JsonProperty("postal_code") + @ExcludeMissing + postalCode: JsonField = JsonMissing.of(), + @JsonProperty("state") @ExcludeMissing state: JsonField = JsonMissing.of(), + ) : this(city, country, line1, line2, postalCode, state, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -3641,25 +3711,15 @@ private constructor( */ @JsonProperty("state") @ExcludeMissing fun _state(): JsonField = state + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ShippingAddress = apply { - if (validated) { - return@apply - } - - city() - country() - line1() - line2() - postalCode() - state() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3807,10 +3867,26 @@ private constructor( line2, postalCode, state, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): ShippingAddress = apply { + if (validated) { + return@apply + } + + city() + country() + line1() + line2() + postalCode() + state() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -3981,23 +4057,27 @@ private constructor( } } - @NoAutoDetect class NewAvalaraTaxConfiguration - @JsonCreator private constructor( - @JsonProperty("tax_exempt") - @ExcludeMissing - private val taxExempt: JsonField = JsonMissing.of(), - @JsonProperty("tax_provider") - @ExcludeMissing - private val taxProvider: JsonField = JsonMissing.of(), - @JsonProperty("tax_exemption_code") - @ExcludeMissing - private val taxExemptionCode: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val taxExempt: JsonField, + private val taxProvider: JsonField, + private val taxExemptionCode: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tax_exempt") + @ExcludeMissing + taxExempt: JsonField = JsonMissing.of(), + @JsonProperty("tax_provider") + @ExcludeMissing + taxProvider: JsonField = JsonMissing.of(), + @JsonProperty("tax_exemption_code") + @ExcludeMissing + taxExemptionCode: JsonField = JsonMissing.of(), + ) : this(taxExempt, taxProvider, taxExemptionCode, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4049,22 +4129,15 @@ private constructor( @ExcludeMissing fun _taxExemptionCode(): JsonField = taxExemptionCode + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewAvalaraTaxConfiguration = apply { - if (validated) { - return@apply - } - - taxExempt() - taxProvider() - taxExemptionCode() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4185,10 +4258,23 @@ private constructor( checkRequired("taxExempt", taxExempt), checkRequired("taxProvider", taxProvider), taxExemptionCode, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewAvalaraTaxConfiguration = apply { + if (validated) { + return@apply + } + + taxExempt() + taxProvider() + taxExemptionCode() + validated = true + } + class TaxProvider @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4306,20 +4392,23 @@ private constructor( "NewAvalaraTaxConfiguration{taxExempt=$taxExempt, taxProvider=$taxProvider, taxExemptionCode=$taxExemptionCode, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewTaxJarConfiguration - @JsonCreator private constructor( - @JsonProperty("tax_exempt") - @ExcludeMissing - private val taxExempt: JsonField = JsonMissing.of(), - @JsonProperty("tax_provider") - @ExcludeMissing - private val taxProvider: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val taxExempt: JsonField, + private val taxProvider: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tax_exempt") + @ExcludeMissing + taxExempt: JsonField = JsonMissing.of(), + @JsonProperty("tax_provider") + @ExcludeMissing + taxProvider: JsonField = JsonMissing.of(), + ) : this(taxExempt, taxProvider, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4354,21 +4443,15 @@ private constructor( @ExcludeMissing fun _taxProvider(): JsonField = taxProvider + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewTaxJarConfiguration = apply { - if (validated) { - return@apply - } - - taxExempt() - taxProvider() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4465,10 +4548,22 @@ private constructor( NewTaxJarConfiguration( checkRequired("taxExempt", taxExempt), checkRequired("taxProvider", taxProvider), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewTaxJarConfiguration = apply { + if (validated) { + return@apply + } + + taxExempt() + taxProvider() + validated = true + } + class TaxProvider @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4693,21 +4788,21 @@ private constructor( * |Venezuela |`ve_rif` |Venezuelan RIF Number | * |Vietnam |`vn_tin` |Vietnamese Tax ID Number | */ - @NoAutoDetect class TaxId - @JsonCreator private constructor( - @JsonProperty("country") - @ExcludeMissing - private val country: JsonField = JsonMissing.of(), - @JsonProperty("type") @ExcludeMissing private val type: JsonField = JsonMissing.of(), - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val country: JsonField, + private val type: JsonField, + private val value: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("country") @ExcludeMissing country: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + @JsonProperty("value") @ExcludeMissing value: JsonField = JsonMissing.of(), + ) : this(country, type, value, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -4747,22 +4842,15 @@ private constructor( */ @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TaxId = apply { - if (validated) { - return@apply - } - - country() - type() - value() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4868,10 +4956,23 @@ private constructor( checkRequired("country", country), checkRequired("type", type), checkRequired("value", value), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): TaxId = apply { + if (validated) { + return@apply + } + + country() + type() + value() + validated = true + } + class Country @JsonCreator private constructor(private val value: JsonField) : Enum { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryByExternalIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryByExternalIdParams.kt index f0e359c4..582f07e4 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryByExternalIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryByExternalIdParams.kt @@ -20,17 +20,15 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.LocalDate import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -153,6 +151,282 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of + * [CustomerCreditLedgerCreateEntryByExternalIdParams]. + * + * The following fields are required: + * ```java + * .externalCustomerId() + * .body() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [CustomerCreditLedgerCreateEntryByExternalIdParams]. */ + class Builder internal constructor() { + + private var externalCustomerId: String? = null + private var body: Body? = null + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from( + customerCreditLedgerCreateEntryByExternalIdParams: + CustomerCreditLedgerCreateEntryByExternalIdParams + ) = apply { + externalCustomerId = + customerCreditLedgerCreateEntryByExternalIdParams.externalCustomerId + body = customerCreditLedgerCreateEntryByExternalIdParams.body + additionalHeaders = + customerCreditLedgerCreateEntryByExternalIdParams.additionalHeaders.toBuilder() + additionalQueryParams = + customerCreditLedgerCreateEntryByExternalIdParams.additionalQueryParams.toBuilder() + } + + fun externalCustomerId(externalCustomerId: String) = apply { + this.externalCustomerId = externalCustomerId + } + + fun body(body: Body) = apply { this.body = body } + + /** + * Alias for calling [body] with + * `Body.ofAddIncrementCreditLedgerEntryRequestParams(addIncrementCreditLedgerEntryRequestParams)`. + */ + fun body( + addIncrementCreditLedgerEntryRequestParams: + Body.AddIncrementCreditLedgerEntryRequestParams + ) = + body( + Body.ofAddIncrementCreditLedgerEntryRequestParams( + addIncrementCreditLedgerEntryRequestParams + ) + ) + + /** + * Alias for calling [body] with the following: + * ```java + * Body.AddIncrementCreditLedgerEntryRequestParams.builder() + * .entryType(CustomerCreditLedgerCreateEntryByExternalIdParams.Body.AddIncrementCreditLedgerEntryRequestParams.EntryType.INCREMENT) + * .amount(amount) + * .build() + * ``` + */ + fun addIncrementCreditLedgerEntryRequestParamsBody(amount: Double) = + body( + Body.AddIncrementCreditLedgerEntryRequestParams.builder() + .entryType( + CustomerCreditLedgerCreateEntryByExternalIdParams.Body + .AddIncrementCreditLedgerEntryRequestParams + .EntryType + .INCREMENT + ) + .amount(amount) + .build() + ) + + /** + * Alias for calling [body] with + * `Body.ofAddDecrementCreditLedgerEntryRequestParams(addDecrementCreditLedgerEntryRequestParams)`. + */ + fun body( + addDecrementCreditLedgerEntryRequestParams: + Body.AddDecrementCreditLedgerEntryRequestParams + ) = + body( + Body.ofAddDecrementCreditLedgerEntryRequestParams( + addDecrementCreditLedgerEntryRequestParams + ) + ) + + /** + * Alias for calling [body] with the following: + * ```java + * Body.AddDecrementCreditLedgerEntryRequestParams.builder() + * .entryType(CustomerCreditLedgerCreateEntryByExternalIdParams.Body.AddDecrementCreditLedgerEntryRequestParams.EntryType.DECREMENT) + * .amount(amount) + * .build() + * ``` + */ + fun addDecrementCreditLedgerEntryRequestParamsBody(amount: Double) = + body( + Body.AddDecrementCreditLedgerEntryRequestParams.builder() + .entryType( + CustomerCreditLedgerCreateEntryByExternalIdParams.Body + .AddDecrementCreditLedgerEntryRequestParams + .EntryType + .DECREMENT + ) + .amount(amount) + .build() + ) + + /** + * Alias for calling [body] with + * `Body.ofAddExpirationChangeCreditLedgerEntryRequestParams(addExpirationChangeCreditLedgerEntryRequestParams)`. + */ + fun body( + addExpirationChangeCreditLedgerEntryRequestParams: + Body.AddExpirationChangeCreditLedgerEntryRequestParams + ) = + body( + Body.ofAddExpirationChangeCreditLedgerEntryRequestParams( + addExpirationChangeCreditLedgerEntryRequestParams + ) + ) + + /** + * Alias for calling [body] with + * `Body.ofAddVoidCreditLedgerEntryRequestParams(addVoidCreditLedgerEntryRequestParams)`. + */ + fun body( + addVoidCreditLedgerEntryRequestParams: Body.AddVoidCreditLedgerEntryRequestParams + ) = + body( + Body.ofAddVoidCreditLedgerEntryRequestParams(addVoidCreditLedgerEntryRequestParams) + ) + + /** + * Alias for calling [body] with + * `Body.ofAddAmendmentCreditLedgerEntryRequestParams(addAmendmentCreditLedgerEntryRequestParams)`. + */ + fun body( + addAmendmentCreditLedgerEntryRequestParams: + Body.AddAmendmentCreditLedgerEntryRequestParams + ) = + body( + Body.ofAddAmendmentCreditLedgerEntryRequestParams( + addAmendmentCreditLedgerEntryRequestParams + ) + ) + + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) + } + + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } + + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } + + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) + } + + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } + + /** + * Returns an immutable instance of [CustomerCreditLedgerCreateEntryByExternalIdParams]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .externalCustomerId() + * .body() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): CustomerCreditLedgerCreateEntryByExternalIdParams = + CustomerCreditLedgerCreateEntryByExternalIdParams( + checkRequired("externalCustomerId", externalCustomerId), + checkRequired("body", body), + additionalHeaders.build(), + additionalQueryParams.build(), + ) + } + @JvmSynthetic internal fun _body(): Body = body fun _pathParam(index: Int): String = @@ -550,41 +824,62 @@ private constructor( } } - @NoAutoDetect class AddIncrementCreditLedgerEntryRequestParams - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("effective_date") - @ExcludeMissing - private val effectiveDate: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("invoice_settings") - @ExcludeMissing - private val invoiceSettings: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val entryType: JsonField, + private val currency: JsonField, + private val description: JsonField, + private val effectiveDate: JsonField, + private val expiryDate: JsonField, + private val invoiceSettings: JsonField, + private val metadata: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("effective_date") + @ExcludeMissing + effectiveDate: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("invoice_settings") + @ExcludeMissing + invoiceSettings: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this( + amount, + entryType, + currency, + description, + effectiveDate, + expiryDate, + invoiceSettings, + metadata, + perUnitCostBasis, + mutableMapOf(), + ) + /** * The number of credits to effect. Note that this is required for increment, decrement, * void, or undo operations. @@ -758,28 +1053,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AddIncrementCreditLedgerEntryRequestParams = apply { - if (validated) { - return@apply - } - - amount() - entryType() - currency() - description() - effectiveDate() - expiryDate() - invoiceSettings().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1056,10 +1338,29 @@ private constructor( invoiceSettings, metadata, perUnitCostBasis, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AddIncrementCreditLedgerEntryRequestParams = apply { + if (validated) { + return@apply + } + + amount() + entryType() + currency() + description() + effectiveDate() + expiryDate() + invoiceSettings().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + perUnitCostBasis() + validated = true + } + class EntryType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -1163,26 +1464,31 @@ private constructor( * credits. If `invoice_settings` is passed, you must specify per_unit_cost_basis, as * the calculation of the invoice total is done on that basis. */ - @NoAutoDetect class InvoiceSettings - @JsonCreator private constructor( - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("memo") - @ExcludeMissing - private val memo: JsonField = JsonMissing.of(), - @JsonProperty("require_successful_payment") - @ExcludeMissing - private val requireSuccessfulPayment: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val autoCollection: JsonField, + private val netTerms: JsonField, + private val memo: JsonField, + private val requireSuccessfulPayment: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("net_terms") + @ExcludeMissing + netTerms: JsonField = JsonMissing.of(), + @JsonProperty("memo") + @ExcludeMissing + memo: JsonField = JsonMissing.of(), + @JsonProperty("require_successful_payment") + @ExcludeMissing + requireSuccessfulPayment: JsonField = JsonMissing.of(), + ) : this(autoCollection, netTerms, memo, requireSuccessfulPayment, mutableMapOf()) + /** * Whether the credits purchase invoice should auto collect with the customer's * saved payment method. @@ -1262,23 +1568,15 @@ private constructor( @ExcludeMissing fun _requireSuccessfulPayment(): JsonField = requireSuccessfulPayment + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoiceSettings = apply { - if (validated) { - return@apply - } - - autoCollection() - netTerms() - memo() - requireSuccessfulPayment() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1423,10 +1721,24 @@ private constructor( checkRequired("netTerms", netTerms), memo, requireSuccessfulPayment, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoiceSettings = apply { + if (validated) { + return@apply + } + + autoCollection() + netTerms() + memo() + requireSuccessfulPayment() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -1450,27 +1762,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1517,7 +1822,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -1555,29 +1870,35 @@ private constructor( "AddIncrementCreditLedgerEntryRequestParams{amount=$amount, entryType=$entryType, currency=$currency, description=$description, effectiveDate=$effectiveDate, expiryDate=$expiryDate, invoiceSettings=$invoiceSettings, metadata=$metadata, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class AddDecrementCreditLedgerEntryRequestParams - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val entryType: JsonField, + private val currency: JsonField, + private val description: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this(amount, entryType, currency, description, metadata, mutableMapOf()) + /** * The number of credits to effect. Note that this is required for increment, decrement, * void, or undo operations. @@ -1671,24 +1992,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AddDecrementCreditLedgerEntryRequestParams = apply { - if (validated) { - return@apply - } - - amount() - entryType() - currency() - description() - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1862,10 +2174,25 @@ private constructor( currency, description, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AddDecrementCreditLedgerEntryRequestParams = apply { + if (validated) { + return@apply + } + + amount() + entryType() + currency() + description() + metadata().ifPresent { it.validate() } + validated = true + } + class EntryType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -1969,27 +2296,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2036,7 +2356,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -2074,38 +2404,57 @@ private constructor( "AddDecrementCreditLedgerEntryRequestParams{amount=$amount, entryType=$entryType, currency=$currency, description=$description, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class AddExpirationChangeCreditLedgerEntryRequestParams - @JsonCreator private constructor( - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("target_expiry_date") - @ExcludeMissing - private val targetExpiryDate: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("block_id") - @ExcludeMissing - private val blockId: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val entryType: JsonField, + private val expiryDate: JsonField, + private val targetExpiryDate: JsonField, + private val amount: JsonField, + private val blockId: JsonField, + private val currency: JsonField, + private val description: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("target_expiry_date") + @ExcludeMissing + targetExpiryDate: JsonField = JsonMissing.of(), + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("block_id") + @ExcludeMissing + blockId: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + entryType, + expiryDate, + targetExpiryDate, + amount, + blockId, + currency, + description, + metadata, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2253,27 +2602,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AddExpirationChangeCreditLedgerEntryRequestParams = apply { - if (validated) { - return@apply - } - - entryType() - expiryDate() - targetExpiryDate() - amount() - blockId() - currency() - description() - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2528,10 +2865,28 @@ private constructor( currency, description, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AddExpirationChangeCreditLedgerEntryRequestParams = apply { + if (validated) { + return@apply + } + + entryType() + expiryDate() + targetExpiryDate() + amount() + blockId() + currency() + description() + metadata().ifPresent { it.validate() } + validated = true + } + class EntryType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2635,27 +2990,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2702,7 +3050,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -2740,35 +3098,52 @@ private constructor( "AddExpirationChangeCreditLedgerEntryRequestParams{entryType=$entryType, expiryDate=$expiryDate, targetExpiryDate=$targetExpiryDate, amount=$amount, blockId=$blockId, currency=$currency, description=$description, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class AddVoidCreditLedgerEntryRequestParams - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("block_id") - @ExcludeMissing - private val blockId: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("void_reason") - @ExcludeMissing - private val voidReason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val blockId: JsonField, + private val entryType: JsonField, + private val currency: JsonField, + private val description: JsonField, + private val metadata: JsonField, + private val voidReason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("block_id") + @ExcludeMissing + blockId: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("void_reason") + @ExcludeMissing + voidReason: JsonField = JsonMissing.of(), + ) : this( + amount, + blockId, + entryType, + currency, + description, + metadata, + voidReason, + mutableMapOf(), + ) + /** * The number of credits to effect. Note that this is required for increment, decrement, * void, or undo operations. @@ -2897,26 +3272,15 @@ private constructor( @ExcludeMissing fun _voidReason(): JsonField = voidReason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AddVoidCreditLedgerEntryRequestParams = apply { - if (validated) { - return@apply - } - - amount() - blockId() - entryType() - currency() - description() - metadata().ifPresent { it.validate() } - voidReason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3127,10 +3491,27 @@ private constructor( description, metadata, voidReason, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AddVoidCreditLedgerEntryRequestParams = apply { + if (validated) { + return@apply + } + + amount() + blockId() + entryType() + currency() + description() + metadata().ifPresent { it.validate() } + voidReason() + validated = true + } + class EntryType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3234,27 +3615,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3301,7 +3675,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -3434,37 +3818,44 @@ private constructor( /* spotless:on */ override fun hashCode(): Int = hashCode - - override fun toString() = - "AddVoidCreditLedgerEntryRequestParams{amount=$amount, blockId=$blockId, entryType=$entryType, currency=$currency, description=$description, metadata=$metadata, voidReason=$voidReason, additionalProperties=$additionalProperties}" - } - - @NoAutoDetect - class AddAmendmentCreditLedgerEntryRequestParams - @JsonCreator - private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("block_id") - @ExcludeMissing - private val blockId: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + + override fun toString() = + "AddVoidCreditLedgerEntryRequestParams{amount=$amount, blockId=$blockId, entryType=$entryType, currency=$currency, description=$description, metadata=$metadata, voidReason=$voidReason, additionalProperties=$additionalProperties}" + } + + class AddAmendmentCreditLedgerEntryRequestParams + private constructor( + private val amount: JsonField, + private val blockId: JsonField, + private val entryType: JsonField, + private val currency: JsonField, + private val description: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("block_id") + @ExcludeMissing + blockId: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this(amount, blockId, entryType, currency, description, metadata, mutableMapOf()) + /** * The number of credits to effect. Note that this is required for increment, decrement * or void operations. @@ -3574,25 +3965,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AddAmendmentCreditLedgerEntryRequestParams = apply { - if (validated) { - return@apply - } - - amount() - blockId() - entryType() - currency() - description() - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3783,10 +4164,26 @@ private constructor( currency, description, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AddAmendmentCreditLedgerEntryRequestParams = apply { + if (validated) { + return@apply + } + + amount() + blockId() + entryType() + currency() + description() + metadata().ifPresent { it.validate() } + validated = true + } + class EntryType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3867,410 +4264,136 @@ private constructor( * @throws OrbInvalidDataException if this class instance's value does not have the * expected primitive type. */ - fun asString(): String = - _value().asString().orElseThrow { - OrbInvalidDataException("Value is not a String") - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is EntryType && value == other.value /* spotless:on */ - } - - override fun hashCode() = value.hashCode() - - override fun toString() = value.toString() - } - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by - * setting `metadata` to `null`. - */ - @NoAutoDetect - class Metadata - @JsonCreator - private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** Returns a mutable builder for constructing an instance of [Metadata]. */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Metadata]. */ - class Builder internal constructor() { - - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(metadata: Metadata) = apply { - additionalProperties = metadata.additionalProperties.toMutableMap() - } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = - apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Metadata]. - * - * Further updates to this [Builder] will not mutate the returned instance. - */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Metadata && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = "Metadata{additionalProperties=$additionalProperties}" - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is AddAmendmentCreditLedgerEntryRequestParams && amount == other.amount && blockId == other.blockId && entryType == other.entryType && currency == other.currency && description == other.description && metadata == other.metadata && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(amount, blockId, entryType, currency, description, metadata, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "AddAmendmentCreditLedgerEntryRequestParams{amount=$amount, blockId=$blockId, entryType=$entryType, currency=$currency, description=$description, metadata=$metadata, additionalProperties=$additionalProperties}" - } - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of - * [CustomerCreditLedgerCreateEntryByExternalIdParams]. - * - * The following fields are required: - * ```java - * .externalCustomerId() - * .body() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [CustomerCreditLedgerCreateEntryByExternalIdParams]. */ - @NoAutoDetect - class Builder internal constructor() { - - private var externalCustomerId: String? = null - private var body: Body? = null - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() - - @JvmSynthetic - internal fun from( - customerCreditLedgerCreateEntryByExternalIdParams: - CustomerCreditLedgerCreateEntryByExternalIdParams - ) = apply { - externalCustomerId = - customerCreditLedgerCreateEntryByExternalIdParams.externalCustomerId - body = customerCreditLedgerCreateEntryByExternalIdParams.body - additionalHeaders = - customerCreditLedgerCreateEntryByExternalIdParams.additionalHeaders.toBuilder() - additionalQueryParams = - customerCreditLedgerCreateEntryByExternalIdParams.additionalQueryParams.toBuilder() - } - - fun externalCustomerId(externalCustomerId: String) = apply { - this.externalCustomerId = externalCustomerId - } - - fun body(body: Body) = apply { this.body = body } - - /** - * Alias for calling [body] with - * `Body.ofAddIncrementCreditLedgerEntryRequestParams(addIncrementCreditLedgerEntryRequestParams)`. - */ - fun body( - addIncrementCreditLedgerEntryRequestParams: - Body.AddIncrementCreditLedgerEntryRequestParams - ) = - body( - Body.ofAddIncrementCreditLedgerEntryRequestParams( - addIncrementCreditLedgerEntryRequestParams - ) - ) - - /** - * Alias for calling [body] with the following: - * ```java - * Body.AddIncrementCreditLedgerEntryRequestParams.builder() - * .entryType(CustomerCreditLedgerCreateEntryByExternalIdParams.Body.AddIncrementCreditLedgerEntryRequestParams.EntryType.INCREMENT) - * .amount(amount) - * .build() - * ``` - */ - fun addIncrementCreditLedgerEntryRequestParamsBody(amount: Double) = - body( - Body.AddIncrementCreditLedgerEntryRequestParams.builder() - .entryType( - CustomerCreditLedgerCreateEntryByExternalIdParams.Body - .AddIncrementCreditLedgerEntryRequestParams - .EntryType - .INCREMENT - ) - .amount(amount) - .build() - ) + fun asString(): String = + _value().asString().orElseThrow { + OrbInvalidDataException("Value is not a String") + } - /** - * Alias for calling [body] with - * `Body.ofAddDecrementCreditLedgerEntryRequestParams(addDecrementCreditLedgerEntryRequestParams)`. - */ - fun body( - addDecrementCreditLedgerEntryRequestParams: - Body.AddDecrementCreditLedgerEntryRequestParams - ) = - body( - Body.ofAddDecrementCreditLedgerEntryRequestParams( - addDecrementCreditLedgerEntryRequestParams - ) - ) + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } - /** - * Alias for calling [body] with the following: - * ```java - * Body.AddDecrementCreditLedgerEntryRequestParams.builder() - * .entryType(CustomerCreditLedgerCreateEntryByExternalIdParams.Body.AddDecrementCreditLedgerEntryRequestParams.EntryType.DECREMENT) - * .amount(amount) - * .build() - * ``` - */ - fun addDecrementCreditLedgerEntryRequestParamsBody(amount: Double) = - body( - Body.AddDecrementCreditLedgerEntryRequestParams.builder() - .entryType( - CustomerCreditLedgerCreateEntryByExternalIdParams.Body - .AddDecrementCreditLedgerEntryRequestParams - .EntryType - .DECREMENT - ) - .amount(amount) - .build() - ) + return /* spotless:off */ other is EntryType && value == other.value /* spotless:on */ + } - /** - * Alias for calling [body] with - * `Body.ofAddExpirationChangeCreditLedgerEntryRequestParams(addExpirationChangeCreditLedgerEntryRequestParams)`. - */ - fun body( - addExpirationChangeCreditLedgerEntryRequestParams: - Body.AddExpirationChangeCreditLedgerEntryRequestParams - ) = - body( - Body.ofAddExpirationChangeCreditLedgerEntryRequestParams( - addExpirationChangeCreditLedgerEntryRequestParams - ) - ) + override fun hashCode() = value.hashCode() - /** - * Alias for calling [body] with - * `Body.ofAddVoidCreditLedgerEntryRequestParams(addVoidCreditLedgerEntryRequestParams)`. - */ - fun body( - addVoidCreditLedgerEntryRequestParams: Body.AddVoidCreditLedgerEntryRequestParams - ) = - body( - Body.ofAddVoidCreditLedgerEntryRequestParams(addVoidCreditLedgerEntryRequestParams) - ) + override fun toString() = value.toString() + } - /** - * Alias for calling [body] with - * `Body.ofAddAmendmentCreditLedgerEntryRequestParams(addAmendmentCreditLedgerEntryRequestParams)`. - */ - fun body( - addAmendmentCreditLedgerEntryRequestParams: - Body.AddAmendmentCreditLedgerEntryRequestParams - ) = - body( - Body.ofAddAmendmentCreditLedgerEntryRequestParams( - addAmendmentCreditLedgerEntryRequestParams - ) - ) + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by + * setting `metadata` to `null`. + */ + class Metadata + private constructor(private val additionalProperties: MutableMap) { - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + @JsonCreator private constructor() : this(mutableMapOf()) - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } + fun toBuilder() = Builder().from(this) - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + companion object { - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** Returns a mutable builder for constructing an instance of [Metadata]. */ + @JvmStatic fun builder() = Builder() + } - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } + /** A builder for [Metadata]. */ + class Builder internal constructor() { - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } + private var additionalProperties: MutableMap = mutableMapOf() - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + @JvmSynthetic + internal fun from(metadata: Metadata) = apply { + additionalProperties = metadata.additionalProperties.toMutableMap() + } - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } + fun putAllAdditionalProperties(additionalProperties: Map) = + apply { + this.additionalProperties.putAll(additionalProperties) + } - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun removeAdditionalProperty(key: String) = apply { + additionalProperties.remove(key) + } - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } + /** + * Returns an immutable instance of [Metadata]. + * + * Further updates to this [Builder] will not mutate the returned instance. + */ + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) - } + private var validated: Boolean = false - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } + fun validate(): Metadata = apply { + if (validated) { + return@apply + } - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } + validated = true + } - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) - } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } + return /* spotless:off */ other is Metadata && additionalProperties == other.additionalProperties /* spotless:on */ + } - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(additionalProperties) } + /* spotless:on */ - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + override fun hashCode(): Int = hashCode + + override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) - } + return /* spotless:off */ other is AddAmendmentCreditLedgerEntryRequestParams && amount == other.amount && blockId == other.blockId && entryType == other.entryType && currency == other.currency && description == other.description && metadata == other.metadata && additionalProperties == other.additionalProperties /* spotless:on */ + } - /** - * Returns an immutable instance of [CustomerCreditLedgerCreateEntryByExternalIdParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .externalCustomerId() - * .body() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): CustomerCreditLedgerCreateEntryByExternalIdParams = - CustomerCreditLedgerCreateEntryByExternalIdParams( - checkRequired("externalCustomerId", externalCustomerId), - checkRequired("body", body), - additionalHeaders.build(), - additionalQueryParams.build(), - ) + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(amount, blockId, entryType, currency, description, metadata, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "AddAmendmentCreditLedgerEntryRequestParams{amount=$amount, blockId=$blockId, entryType=$entryType, currency=$currency, description=$description, metadata=$metadata, additionalProperties=$additionalProperties}" + } } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryByExternalIdResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryByExternalIdResponse.kt index f48c1000..8db88ab9 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryByExternalIdResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryByExternalIdResponse.kt @@ -20,13 +20,11 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -410,51 +408,78 @@ private constructor( } } - @NoAutoDetect class IncrementLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val startingBalance: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + startingBalance, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -649,32 +674,15 @@ private constructor( @ExcludeMissing fun _startingBalance(): JsonField = startingBalance + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): IncrementLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - startingBalance() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -964,27 +972,52 @@ private constructor( checkRequired("ledgerSequenceNumber", ledgerSequenceNumber), checkRequired("metadata", metadata), checkRequired("startingBalance", startingBalance), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): IncrementLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + startingBalance() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -1033,22 +1066,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1174,10 +1200,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -1196,20 +1235,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -1241,21 +1281,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1358,10 +1392,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -1583,27 +1629,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1650,7 +1689,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -1688,60 +1737,89 @@ private constructor( "IncrementLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, startingBalance=$startingBalance, additionalProperties=$additionalProperties}" } - @NoAutoDetect class DecrementLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonProperty("event_id") - @ExcludeMissing - private val eventId: JsonField = JsonMissing.of(), - @JsonProperty("invoice_id") - @ExcludeMissing - private val invoiceId: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val startingBalance: JsonField, + private val eventId: JsonField, + private val invoiceId: JsonField, + private val priceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + @JsonProperty("event_id") @ExcludeMissing eventId: JsonField = JsonMissing.of(), + @JsonProperty("invoice_id") + @ExcludeMissing + invoiceId: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + startingBalance, + eventId, + invoiceId, + priceId, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -1975,35 +2053,15 @@ private constructor( */ @JsonProperty("price_id") @ExcludeMissing fun _priceId(): JsonField = priceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DecrementLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - startingBalance() - eventId() - invoiceId() - priceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2344,27 +2402,55 @@ private constructor( eventId, invoiceId, priceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect - class CreditBlock - @JsonCreator - private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private var validated: Boolean = false + + fun validate(): DecrementLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + startingBalance() + eventId() + invoiceId() + priceId() + validated = true + } + + class CreditBlock + private constructor( + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2413,22 +2499,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2554,10 +2633,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2576,20 +2668,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2621,21 +2714,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2738,10 +2825,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2963,27 +3062,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3030,7 +3122,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -3068,54 +3170,83 @@ private constructor( "DecrementLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, startingBalance=$startingBalance, eventId=$eventId, invoiceId=$invoiceId, priceId=$priceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class ExpirationChangeLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("new_block_expiry_date") - @ExcludeMissing - private val newBlockExpiryDate: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val newBlockExpiryDate: JsonField, + private val startingBalance: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("new_block_expiry_date") + @ExcludeMissing + newBlockExpiryDate: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + newBlockExpiryDate, + startingBalance, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -3327,33 +3458,15 @@ private constructor( @ExcludeMissing fun _startingBalance(): JsonField = startingBalance + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ExpirationChangeLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - newBlockExpiryDate() - startingBalance() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3671,27 +3784,53 @@ private constructor( checkRequired("metadata", metadata), checkRequired("newBlockExpiryDate", newBlockExpiryDate), checkRequired("startingBalance", startingBalance), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): ExpirationChangeLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + newBlockExpiryDate() + startingBalance() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3740,22 +3879,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3881,10 +4013,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -3903,20 +4048,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3948,21 +4094,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4065,10 +4205,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -4290,27 +4442,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4357,7 +4502,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -4395,51 +4550,78 @@ private constructor( "ExpirationChangeLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, newBlockExpiryDate=$newBlockExpiryDate, startingBalance=$startingBalance, additionalProperties=$additionalProperties}" } - @NoAutoDetect class CreditBlockExpiryLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val startingBalance: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + startingBalance, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -4634,32 +4816,15 @@ private constructor( @ExcludeMissing fun _startingBalance(): JsonField = startingBalance + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlockExpiryLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - startingBalance() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4951,27 +5116,52 @@ private constructor( checkRequired("ledgerSequenceNumber", ledgerSequenceNumber), checkRequired("metadata", metadata), checkRequired("startingBalance", startingBalance), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): CreditBlockExpiryLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + startingBalance() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -5020,22 +5210,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5161,10 +5344,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5183,20 +5379,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -5228,21 +5425,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5345,10 +5536,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5570,27 +5773,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5637,7 +5833,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -5675,57 +5881,88 @@ private constructor( "CreditBlockExpiryLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, startingBalance=$startingBalance, additionalProperties=$additionalProperties}" } - @NoAutoDetect class VoidLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonProperty("void_amount") - @ExcludeMissing - private val voidAmount: JsonField = JsonMissing.of(), - @JsonProperty("void_reason") - @ExcludeMissing - private val voidReason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val startingBalance: JsonField, + private val voidAmount: JsonField, + private val voidReason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + @JsonProperty("void_amount") + @ExcludeMissing + voidAmount: JsonField = JsonMissing.of(), + @JsonProperty("void_reason") + @ExcludeMissing + voidReason: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + startingBalance, + voidAmount, + voidReason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -5950,36 +6187,17 @@ private constructor( @JsonProperty("void_reason") @ExcludeMissing fun _voidReason(): JsonField = voidReason - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): VoidLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - startingBalance() - voidAmount() - voidReason() - validated = true + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -6303,27 +6521,54 @@ private constructor( checkRequired("startingBalance", startingBalance), checkRequired("voidAmount", voidAmount), checkRequired("voidReason", voidReason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): VoidLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + startingBalance() + voidAmount() + voidReason() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -6372,22 +6617,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6513,10 +6751,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6535,20 +6786,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -6580,21 +6832,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6697,10 +6943,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6922,27 +7180,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6989,7 +7240,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -7027,60 +7288,93 @@ private constructor( "VoidLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, startingBalance=$startingBalance, voidAmount=$voidAmount, voidReason=$voidReason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class VoidInitiatedLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("new_block_expiry_date") - @ExcludeMissing - private val newBlockExpiryDate: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonProperty("void_amount") - @ExcludeMissing - private val voidAmount: JsonField = JsonMissing.of(), - @JsonProperty("void_reason") - @ExcludeMissing - private val voidReason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val newBlockExpiryDate: JsonField, + private val startingBalance: JsonField, + private val voidAmount: JsonField, + private val voidReason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("new_block_expiry_date") + @ExcludeMissing + newBlockExpiryDate: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + @JsonProperty("void_amount") + @ExcludeMissing + voidAmount: JsonField = JsonMissing.of(), + @JsonProperty("void_reason") + @ExcludeMissing + voidReason: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + newBlockExpiryDate, + startingBalance, + voidAmount, + voidReason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -7323,35 +7617,15 @@ private constructor( @ExcludeMissing fun _voidReason(): JsonField = voidReason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): VoidInitiatedLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - newBlockExpiryDate() - startingBalance() - voidAmount() - voidReason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7695,27 +7969,55 @@ private constructor( checkRequired("startingBalance", startingBalance), checkRequired("voidAmount", voidAmount), checkRequired("voidReason", voidReason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): VoidInitiatedLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + newBlockExpiryDate() + startingBalance() + voidAmount() + voidReason() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -7764,22 +8066,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7905,10 +8200,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7927,20 +8235,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -7972,21 +8281,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8089,10 +8392,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8314,27 +8629,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8381,7 +8689,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -8419,51 +8737,78 @@ private constructor( "VoidInitiatedLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, newBlockExpiryDate=$newBlockExpiryDate, startingBalance=$startingBalance, voidAmount=$voidAmount, voidReason=$voidReason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class AmendmentLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val startingBalance: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + startingBalance, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -8658,32 +9003,15 @@ private constructor( @ExcludeMissing fun _startingBalance(): JsonField = startingBalance + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AmendmentLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - startingBalance() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8973,27 +9301,52 @@ private constructor( checkRequired("ledgerSequenceNumber", ledgerSequenceNumber), checkRequired("metadata", metadata), checkRequired("startingBalance", startingBalance), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): AmendmentLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + startingBalance() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -9042,22 +9395,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9183,10 +9529,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -9205,20 +9564,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -9250,21 +9610,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9367,10 +9721,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -9592,27 +9958,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9659,7 +10018,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryParams.kt index 9ce8d88b..bfe3c39e 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryParams.kt @@ -20,17 +20,15 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.LocalDate import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -153,6 +151,277 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of + * [CustomerCreditLedgerCreateEntryParams]. + * + * The following fields are required: + * ```java + * .customerId() + * .body() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [CustomerCreditLedgerCreateEntryParams]. */ + class Builder internal constructor() { + + private var customerId: String? = null + private var body: Body? = null + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from( + customerCreditLedgerCreateEntryParams: CustomerCreditLedgerCreateEntryParams + ) = apply { + customerId = customerCreditLedgerCreateEntryParams.customerId + body = customerCreditLedgerCreateEntryParams.body + additionalHeaders = customerCreditLedgerCreateEntryParams.additionalHeaders.toBuilder() + additionalQueryParams = + customerCreditLedgerCreateEntryParams.additionalQueryParams.toBuilder() + } + + fun customerId(customerId: String) = apply { this.customerId = customerId } + + fun body(body: Body) = apply { this.body = body } + + /** + * Alias for calling [body] with + * `Body.ofAddIncrementCreditLedgerEntryRequestParams(addIncrementCreditLedgerEntryRequestParams)`. + */ + fun body( + addIncrementCreditLedgerEntryRequestParams: + Body.AddIncrementCreditLedgerEntryRequestParams + ) = + body( + Body.ofAddIncrementCreditLedgerEntryRequestParams( + addIncrementCreditLedgerEntryRequestParams + ) + ) + + /** + * Alias for calling [body] with the following: + * ```java + * Body.AddIncrementCreditLedgerEntryRequestParams.builder() + * .entryType(CustomerCreditLedgerCreateEntryParams.Body.AddIncrementCreditLedgerEntryRequestParams.EntryType.INCREMENT) + * .amount(amount) + * .build() + * ``` + */ + fun addIncrementCreditLedgerEntryRequestParamsBody(amount: Double) = + body( + Body.AddIncrementCreditLedgerEntryRequestParams.builder() + .entryType( + CustomerCreditLedgerCreateEntryParams.Body + .AddIncrementCreditLedgerEntryRequestParams + .EntryType + .INCREMENT + ) + .amount(amount) + .build() + ) + + /** + * Alias for calling [body] with + * `Body.ofAddDecrementCreditLedgerEntryRequestParams(addDecrementCreditLedgerEntryRequestParams)`. + */ + fun body( + addDecrementCreditLedgerEntryRequestParams: + Body.AddDecrementCreditLedgerEntryRequestParams + ) = + body( + Body.ofAddDecrementCreditLedgerEntryRequestParams( + addDecrementCreditLedgerEntryRequestParams + ) + ) + + /** + * Alias for calling [body] with the following: + * ```java + * Body.AddDecrementCreditLedgerEntryRequestParams.builder() + * .entryType(CustomerCreditLedgerCreateEntryParams.Body.AddDecrementCreditLedgerEntryRequestParams.EntryType.DECREMENT) + * .amount(amount) + * .build() + * ``` + */ + fun addDecrementCreditLedgerEntryRequestParamsBody(amount: Double) = + body( + Body.AddDecrementCreditLedgerEntryRequestParams.builder() + .entryType( + CustomerCreditLedgerCreateEntryParams.Body + .AddDecrementCreditLedgerEntryRequestParams + .EntryType + .DECREMENT + ) + .amount(amount) + .build() + ) + + /** + * Alias for calling [body] with + * `Body.ofAddExpirationChangeCreditLedgerEntryRequestParams(addExpirationChangeCreditLedgerEntryRequestParams)`. + */ + fun body( + addExpirationChangeCreditLedgerEntryRequestParams: + Body.AddExpirationChangeCreditLedgerEntryRequestParams + ) = + body( + Body.ofAddExpirationChangeCreditLedgerEntryRequestParams( + addExpirationChangeCreditLedgerEntryRequestParams + ) + ) + + /** + * Alias for calling [body] with + * `Body.ofAddVoidCreditLedgerEntryRequestParams(addVoidCreditLedgerEntryRequestParams)`. + */ + fun body( + addVoidCreditLedgerEntryRequestParams: Body.AddVoidCreditLedgerEntryRequestParams + ) = + body( + Body.ofAddVoidCreditLedgerEntryRequestParams(addVoidCreditLedgerEntryRequestParams) + ) + + /** + * Alias for calling [body] with + * `Body.ofAddAmendmentCreditLedgerEntryRequestParams(addAmendmentCreditLedgerEntryRequestParams)`. + */ + fun body( + addAmendmentCreditLedgerEntryRequestParams: + Body.AddAmendmentCreditLedgerEntryRequestParams + ) = + body( + Body.ofAddAmendmentCreditLedgerEntryRequestParams( + addAmendmentCreditLedgerEntryRequestParams + ) + ) + + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) + } + + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } + + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } + + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) + } + + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } + + /** + * Returns an immutable instance of [CustomerCreditLedgerCreateEntryParams]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .customerId() + * .body() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): CustomerCreditLedgerCreateEntryParams = + CustomerCreditLedgerCreateEntryParams( + checkRequired("customerId", customerId), + checkRequired("body", body), + additionalHeaders.build(), + additionalQueryParams.build(), + ) + } + @JvmSynthetic internal fun _body(): Body = body fun _pathParam(index: Int): String = @@ -550,41 +819,62 @@ private constructor( } } - @NoAutoDetect class AddIncrementCreditLedgerEntryRequestParams - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("effective_date") - @ExcludeMissing - private val effectiveDate: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("invoice_settings") - @ExcludeMissing - private val invoiceSettings: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val entryType: JsonField, + private val currency: JsonField, + private val description: JsonField, + private val effectiveDate: JsonField, + private val expiryDate: JsonField, + private val invoiceSettings: JsonField, + private val metadata: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("effective_date") + @ExcludeMissing + effectiveDate: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("invoice_settings") + @ExcludeMissing + invoiceSettings: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this( + amount, + entryType, + currency, + description, + effectiveDate, + expiryDate, + invoiceSettings, + metadata, + perUnitCostBasis, + mutableMapOf(), + ) + /** * The number of credits to effect. Note that this is required for increment, decrement, * void, or undo operations. @@ -758,28 +1048,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AddIncrementCreditLedgerEntryRequestParams = apply { - if (validated) { - return@apply - } - - amount() - entryType() - currency() - description() - effectiveDate() - expiryDate() - invoiceSettings().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1056,10 +1333,29 @@ private constructor( invoiceSettings, metadata, perUnitCostBasis, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AddIncrementCreditLedgerEntryRequestParams = apply { + if (validated) { + return@apply + } + + amount() + entryType() + currency() + description() + effectiveDate() + expiryDate() + invoiceSettings().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + perUnitCostBasis() + validated = true + } + class EntryType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -1163,26 +1459,31 @@ private constructor( * credits. If `invoice_settings` is passed, you must specify per_unit_cost_basis, as * the calculation of the invoice total is done on that basis. */ - @NoAutoDetect class InvoiceSettings - @JsonCreator private constructor( - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("memo") - @ExcludeMissing - private val memo: JsonField = JsonMissing.of(), - @JsonProperty("require_successful_payment") - @ExcludeMissing - private val requireSuccessfulPayment: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val autoCollection: JsonField, + private val netTerms: JsonField, + private val memo: JsonField, + private val requireSuccessfulPayment: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("net_terms") + @ExcludeMissing + netTerms: JsonField = JsonMissing.of(), + @JsonProperty("memo") + @ExcludeMissing + memo: JsonField = JsonMissing.of(), + @JsonProperty("require_successful_payment") + @ExcludeMissing + requireSuccessfulPayment: JsonField = JsonMissing.of(), + ) : this(autoCollection, netTerms, memo, requireSuccessfulPayment, mutableMapOf()) + /** * Whether the credits purchase invoice should auto collect with the customer's * saved payment method. @@ -1262,23 +1563,15 @@ private constructor( @ExcludeMissing fun _requireSuccessfulPayment(): JsonField = requireSuccessfulPayment + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoiceSettings = apply { - if (validated) { - return@apply - } - - autoCollection() - netTerms() - memo() - requireSuccessfulPayment() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1423,10 +1716,24 @@ private constructor( checkRequired("netTerms", netTerms), memo, requireSuccessfulPayment, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoiceSettings = apply { + if (validated) { + return@apply + } + + autoCollection() + netTerms() + memo() + requireSuccessfulPayment() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -1450,27 +1757,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1517,7 +1817,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -1555,29 +1865,35 @@ private constructor( "AddIncrementCreditLedgerEntryRequestParams{amount=$amount, entryType=$entryType, currency=$currency, description=$description, effectiveDate=$effectiveDate, expiryDate=$expiryDate, invoiceSettings=$invoiceSettings, metadata=$metadata, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class AddDecrementCreditLedgerEntryRequestParams - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val entryType: JsonField, + private val currency: JsonField, + private val description: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this(amount, entryType, currency, description, metadata, mutableMapOf()) + /** * The number of credits to effect. Note that this is required for increment, decrement, * void, or undo operations. @@ -1671,24 +1987,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AddDecrementCreditLedgerEntryRequestParams = apply { - if (validated) { - return@apply - } - - amount() - entryType() - currency() - description() - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1862,10 +2169,25 @@ private constructor( currency, description, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AddDecrementCreditLedgerEntryRequestParams = apply { + if (validated) { + return@apply + } + + amount() + entryType() + currency() + description() + metadata().ifPresent { it.validate() } + validated = true + } + class EntryType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -1969,27 +2291,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2036,7 +2351,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -2074,38 +2399,57 @@ private constructor( "AddDecrementCreditLedgerEntryRequestParams{amount=$amount, entryType=$entryType, currency=$currency, description=$description, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class AddExpirationChangeCreditLedgerEntryRequestParams - @JsonCreator private constructor( - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("target_expiry_date") - @ExcludeMissing - private val targetExpiryDate: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("block_id") - @ExcludeMissing - private val blockId: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val entryType: JsonField, + private val expiryDate: JsonField, + private val targetExpiryDate: JsonField, + private val amount: JsonField, + private val blockId: JsonField, + private val currency: JsonField, + private val description: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("target_expiry_date") + @ExcludeMissing + targetExpiryDate: JsonField = JsonMissing.of(), + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("block_id") + @ExcludeMissing + blockId: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + entryType, + expiryDate, + targetExpiryDate, + amount, + blockId, + currency, + description, + metadata, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2253,27 +2597,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AddExpirationChangeCreditLedgerEntryRequestParams = apply { - if (validated) { - return@apply - } - - entryType() - expiryDate() - targetExpiryDate() - amount() - blockId() - currency() - description() - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2528,10 +2860,28 @@ private constructor( currency, description, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AddExpirationChangeCreditLedgerEntryRequestParams = apply { + if (validated) { + return@apply + } + + entryType() + expiryDate() + targetExpiryDate() + amount() + blockId() + currency() + description() + metadata().ifPresent { it.validate() } + validated = true + } + class EntryType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2635,27 +2985,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2702,7 +3045,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -2740,35 +3093,52 @@ private constructor( "AddExpirationChangeCreditLedgerEntryRequestParams{entryType=$entryType, expiryDate=$expiryDate, targetExpiryDate=$targetExpiryDate, amount=$amount, blockId=$blockId, currency=$currency, description=$description, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class AddVoidCreditLedgerEntryRequestParams - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("block_id") - @ExcludeMissing - private val blockId: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("void_reason") - @ExcludeMissing - private val voidReason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val blockId: JsonField, + private val entryType: JsonField, + private val currency: JsonField, + private val description: JsonField, + private val metadata: JsonField, + private val voidReason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("block_id") + @ExcludeMissing + blockId: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("void_reason") + @ExcludeMissing + voidReason: JsonField = JsonMissing.of(), + ) : this( + amount, + blockId, + entryType, + currency, + description, + metadata, + voidReason, + mutableMapOf(), + ) + /** * The number of credits to effect. Note that this is required for increment, decrement, * void, or undo operations. @@ -2897,26 +3267,15 @@ private constructor( @ExcludeMissing fun _voidReason(): JsonField = voidReason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AddVoidCreditLedgerEntryRequestParams = apply { - if (validated) { - return@apply - } - - amount() - blockId() - entryType() - currency() - description() - metadata().ifPresent { it.validate() } - voidReason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3127,10 +3486,27 @@ private constructor( description, metadata, voidReason, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AddVoidCreditLedgerEntryRequestParams = apply { + if (validated) { + return@apply + } + + amount() + blockId() + entryType() + currency() + description() + metadata().ifPresent { it.validate() } + voidReason() + validated = true + } + class EntryType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3234,27 +3610,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3301,7 +3670,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -3439,32 +3818,39 @@ private constructor( "AddVoidCreditLedgerEntryRequestParams{amount=$amount, blockId=$blockId, entryType=$entryType, currency=$currency, description=$description, metadata=$metadata, voidReason=$voidReason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class AddAmendmentCreditLedgerEntryRequestParams - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("block_id") - @ExcludeMissing - private val blockId: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val blockId: JsonField, + private val entryType: JsonField, + private val currency: JsonField, + private val description: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("block_id") + @ExcludeMissing + blockId: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this(amount, blockId, entryType, currency, description, metadata, mutableMapOf()) + /** * The number of credits to effect. Note that this is required for increment, decrement * or void operations. @@ -3574,25 +3960,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AddAmendmentCreditLedgerEntryRequestParams = apply { - if (validated) { - return@apply - } - - amount() - blockId() - entryType() - currency() - description() - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3783,10 +4159,26 @@ private constructor( currency, description, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AddAmendmentCreditLedgerEntryRequestParams = apply { + if (validated) { + return@apply + } + + amount() + blockId() + entryType() + currency() + description() + metadata().ifPresent { it.validate() } + validated = true + } + class EntryType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3867,405 +4259,136 @@ private constructor( * @throws OrbInvalidDataException if this class instance's value does not have the * expected primitive type. */ - fun asString(): String = - _value().asString().orElseThrow { - OrbInvalidDataException("Value is not a String") - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is EntryType && value == other.value /* spotless:on */ - } - - override fun hashCode() = value.hashCode() - - override fun toString() = value.toString() - } - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by - * setting `metadata` to `null`. - */ - @NoAutoDetect - class Metadata - @JsonCreator - private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** Returns a mutable builder for constructing an instance of [Metadata]. */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Metadata]. */ - class Builder internal constructor() { - - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(metadata: Metadata) = apply { - additionalProperties = metadata.additionalProperties.toMutableMap() - } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = - apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Metadata]. - * - * Further updates to this [Builder] will not mutate the returned instance. - */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Metadata && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = "Metadata{additionalProperties=$additionalProperties}" - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is AddAmendmentCreditLedgerEntryRequestParams && amount == other.amount && blockId == other.blockId && entryType == other.entryType && currency == other.currency && description == other.description && metadata == other.metadata && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(amount, blockId, entryType, currency, description, metadata, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "AddAmendmentCreditLedgerEntryRequestParams{amount=$amount, blockId=$blockId, entryType=$entryType, currency=$currency, description=$description, metadata=$metadata, additionalProperties=$additionalProperties}" - } - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of - * [CustomerCreditLedgerCreateEntryParams]. - * - * The following fields are required: - * ```java - * .customerId() - * .body() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [CustomerCreditLedgerCreateEntryParams]. */ - @NoAutoDetect - class Builder internal constructor() { - - private var customerId: String? = null - private var body: Body? = null - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() - - @JvmSynthetic - internal fun from( - customerCreditLedgerCreateEntryParams: CustomerCreditLedgerCreateEntryParams - ) = apply { - customerId = customerCreditLedgerCreateEntryParams.customerId - body = customerCreditLedgerCreateEntryParams.body - additionalHeaders = customerCreditLedgerCreateEntryParams.additionalHeaders.toBuilder() - additionalQueryParams = - customerCreditLedgerCreateEntryParams.additionalQueryParams.toBuilder() - } - - fun customerId(customerId: String) = apply { this.customerId = customerId } - - fun body(body: Body) = apply { this.body = body } - - /** - * Alias for calling [body] with - * `Body.ofAddIncrementCreditLedgerEntryRequestParams(addIncrementCreditLedgerEntryRequestParams)`. - */ - fun body( - addIncrementCreditLedgerEntryRequestParams: - Body.AddIncrementCreditLedgerEntryRequestParams - ) = - body( - Body.ofAddIncrementCreditLedgerEntryRequestParams( - addIncrementCreditLedgerEntryRequestParams - ) - ) - - /** - * Alias for calling [body] with the following: - * ```java - * Body.AddIncrementCreditLedgerEntryRequestParams.builder() - * .entryType(CustomerCreditLedgerCreateEntryParams.Body.AddIncrementCreditLedgerEntryRequestParams.EntryType.INCREMENT) - * .amount(amount) - * .build() - * ``` - */ - fun addIncrementCreditLedgerEntryRequestParamsBody(amount: Double) = - body( - Body.AddIncrementCreditLedgerEntryRequestParams.builder() - .entryType( - CustomerCreditLedgerCreateEntryParams.Body - .AddIncrementCreditLedgerEntryRequestParams - .EntryType - .INCREMENT - ) - .amount(amount) - .build() - ) + fun asString(): String = + _value().asString().orElseThrow { + OrbInvalidDataException("Value is not a String") + } - /** - * Alias for calling [body] with - * `Body.ofAddDecrementCreditLedgerEntryRequestParams(addDecrementCreditLedgerEntryRequestParams)`. - */ - fun body( - addDecrementCreditLedgerEntryRequestParams: - Body.AddDecrementCreditLedgerEntryRequestParams - ) = - body( - Body.ofAddDecrementCreditLedgerEntryRequestParams( - addDecrementCreditLedgerEntryRequestParams - ) - ) + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } - /** - * Alias for calling [body] with the following: - * ```java - * Body.AddDecrementCreditLedgerEntryRequestParams.builder() - * .entryType(CustomerCreditLedgerCreateEntryParams.Body.AddDecrementCreditLedgerEntryRequestParams.EntryType.DECREMENT) - * .amount(amount) - * .build() - * ``` - */ - fun addDecrementCreditLedgerEntryRequestParamsBody(amount: Double) = - body( - Body.AddDecrementCreditLedgerEntryRequestParams.builder() - .entryType( - CustomerCreditLedgerCreateEntryParams.Body - .AddDecrementCreditLedgerEntryRequestParams - .EntryType - .DECREMENT - ) - .amount(amount) - .build() - ) + return /* spotless:off */ other is EntryType && value == other.value /* spotless:on */ + } - /** - * Alias for calling [body] with - * `Body.ofAddExpirationChangeCreditLedgerEntryRequestParams(addExpirationChangeCreditLedgerEntryRequestParams)`. - */ - fun body( - addExpirationChangeCreditLedgerEntryRequestParams: - Body.AddExpirationChangeCreditLedgerEntryRequestParams - ) = - body( - Body.ofAddExpirationChangeCreditLedgerEntryRequestParams( - addExpirationChangeCreditLedgerEntryRequestParams - ) - ) + override fun hashCode() = value.hashCode() - /** - * Alias for calling [body] with - * `Body.ofAddVoidCreditLedgerEntryRequestParams(addVoidCreditLedgerEntryRequestParams)`. - */ - fun body( - addVoidCreditLedgerEntryRequestParams: Body.AddVoidCreditLedgerEntryRequestParams - ) = - body( - Body.ofAddVoidCreditLedgerEntryRequestParams(addVoidCreditLedgerEntryRequestParams) - ) + override fun toString() = value.toString() + } - /** - * Alias for calling [body] with - * `Body.ofAddAmendmentCreditLedgerEntryRequestParams(addAmendmentCreditLedgerEntryRequestParams)`. - */ - fun body( - addAmendmentCreditLedgerEntryRequestParams: - Body.AddAmendmentCreditLedgerEntryRequestParams - ) = - body( - Body.ofAddAmendmentCreditLedgerEntryRequestParams( - addAmendmentCreditLedgerEntryRequestParams - ) - ) + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by + * setting `metadata` to `null`. + */ + class Metadata + private constructor(private val additionalProperties: MutableMap) { - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + @JsonCreator private constructor() : this(mutableMapOf()) - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } + fun toBuilder() = Builder().from(this) - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + companion object { - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** Returns a mutable builder for constructing an instance of [Metadata]. */ + @JvmStatic fun builder() = Builder() + } - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } + /** A builder for [Metadata]. */ + class Builder internal constructor() { - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } + private var additionalProperties: MutableMap = mutableMapOf() - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + @JvmSynthetic + internal fun from(metadata: Metadata) = apply { + additionalProperties = metadata.additionalProperties.toMutableMap() + } - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } + fun putAllAdditionalProperties(additionalProperties: Map) = + apply { + this.additionalProperties.putAll(additionalProperties) + } - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun removeAdditionalProperty(key: String) = apply { + additionalProperties.remove(key) + } - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } + /** + * Returns an immutable instance of [Metadata]. + * + * Further updates to this [Builder] will not mutate the returned instance. + */ + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) - } + private var validated: Boolean = false - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } + fun validate(): Metadata = apply { + if (validated) { + return@apply + } - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } + validated = true + } - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) - } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } + return /* spotless:off */ other is Metadata && additionalProperties == other.additionalProperties /* spotless:on */ + } - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(additionalProperties) } + /* spotless:on */ - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + override fun hashCode(): Int = hashCode + + override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) - } + return /* spotless:off */ other is AddAmendmentCreditLedgerEntryRequestParams && amount == other.amount && blockId == other.blockId && entryType == other.entryType && currency == other.currency && description == other.description && metadata == other.metadata && additionalProperties == other.additionalProperties /* spotless:on */ + } - /** - * Returns an immutable instance of [CustomerCreditLedgerCreateEntryParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .customerId() - * .body() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): CustomerCreditLedgerCreateEntryParams = - CustomerCreditLedgerCreateEntryParams( - checkRequired("customerId", customerId), - checkRequired("body", body), - additionalHeaders.build(), - additionalQueryParams.build(), - ) + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(amount, blockId, entryType, currency, description, metadata, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "AddAmendmentCreditLedgerEntryRequestParams{amount=$amount, blockId=$blockId, entryType=$entryType, currency=$currency, description=$description, metadata=$metadata, additionalProperties=$additionalProperties}" + } } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryResponse.kt index c5012e1c..c9a5311e 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryResponse.kt @@ -20,13 +20,11 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -397,51 +395,78 @@ private constructor( } } - @NoAutoDetect class IncrementLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val startingBalance: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + startingBalance, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -636,32 +661,15 @@ private constructor( @ExcludeMissing fun _startingBalance(): JsonField = startingBalance + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): IncrementLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - startingBalance() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -951,27 +959,52 @@ private constructor( checkRequired("ledgerSequenceNumber", ledgerSequenceNumber), checkRequired("metadata", metadata), checkRequired("startingBalance", startingBalance), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): IncrementLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + startingBalance() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -1020,22 +1053,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1161,10 +1187,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -1183,20 +1222,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -1228,21 +1268,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1345,10 +1379,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -1570,27 +1616,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1637,7 +1676,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -1675,60 +1724,89 @@ private constructor( "IncrementLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, startingBalance=$startingBalance, additionalProperties=$additionalProperties}" } - @NoAutoDetect class DecrementLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonProperty("event_id") - @ExcludeMissing - private val eventId: JsonField = JsonMissing.of(), - @JsonProperty("invoice_id") - @ExcludeMissing - private val invoiceId: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val startingBalance: JsonField, + private val eventId: JsonField, + private val invoiceId: JsonField, + private val priceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + @JsonProperty("event_id") @ExcludeMissing eventId: JsonField = JsonMissing.of(), + @JsonProperty("invoice_id") + @ExcludeMissing + invoiceId: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + startingBalance, + eventId, + invoiceId, + priceId, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -1962,35 +2040,15 @@ private constructor( */ @JsonProperty("price_id") @ExcludeMissing fun _priceId(): JsonField = priceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DecrementLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - startingBalance() - eventId() - invoiceId() - priceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2331,27 +2389,55 @@ private constructor( eventId, invoiceId, priceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect - class CreditBlock - @JsonCreator - private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private var validated: Boolean = false + + fun validate(): DecrementLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + startingBalance() + eventId() + invoiceId() + priceId() + validated = true + } + + class CreditBlock + private constructor( + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2400,22 +2486,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2541,10 +2620,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2563,20 +2655,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2608,21 +2701,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2725,10 +2812,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2950,27 +3049,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3017,7 +3109,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -3055,54 +3157,83 @@ private constructor( "DecrementLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, startingBalance=$startingBalance, eventId=$eventId, invoiceId=$invoiceId, priceId=$priceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class ExpirationChangeLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("new_block_expiry_date") - @ExcludeMissing - private val newBlockExpiryDate: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val newBlockExpiryDate: JsonField, + private val startingBalance: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("new_block_expiry_date") + @ExcludeMissing + newBlockExpiryDate: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + newBlockExpiryDate, + startingBalance, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -3314,33 +3445,15 @@ private constructor( @ExcludeMissing fun _startingBalance(): JsonField = startingBalance + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ExpirationChangeLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - newBlockExpiryDate() - startingBalance() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3658,27 +3771,53 @@ private constructor( checkRequired("metadata", metadata), checkRequired("newBlockExpiryDate", newBlockExpiryDate), checkRequired("startingBalance", startingBalance), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): ExpirationChangeLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + newBlockExpiryDate() + startingBalance() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3727,22 +3866,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3868,10 +4000,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -3890,20 +4035,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3935,21 +4081,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4052,10 +4192,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -4277,27 +4429,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4344,7 +4489,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -4382,51 +4537,78 @@ private constructor( "ExpirationChangeLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, newBlockExpiryDate=$newBlockExpiryDate, startingBalance=$startingBalance, additionalProperties=$additionalProperties}" } - @NoAutoDetect class CreditBlockExpiryLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val startingBalance: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + startingBalance, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -4621,32 +4803,15 @@ private constructor( @ExcludeMissing fun _startingBalance(): JsonField = startingBalance + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlockExpiryLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - startingBalance() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4938,27 +5103,52 @@ private constructor( checkRequired("ledgerSequenceNumber", ledgerSequenceNumber), checkRequired("metadata", metadata), checkRequired("startingBalance", startingBalance), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): CreditBlockExpiryLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + startingBalance() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -5007,22 +5197,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5148,10 +5331,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5170,20 +5366,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -5215,21 +5412,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5332,10 +5523,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5557,27 +5760,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5624,7 +5820,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -5662,57 +5868,88 @@ private constructor( "CreditBlockExpiryLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, startingBalance=$startingBalance, additionalProperties=$additionalProperties}" } - @NoAutoDetect class VoidLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonProperty("void_amount") - @ExcludeMissing - private val voidAmount: JsonField = JsonMissing.of(), - @JsonProperty("void_reason") - @ExcludeMissing - private val voidReason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val startingBalance: JsonField, + private val voidAmount: JsonField, + private val voidReason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + @JsonProperty("void_amount") + @ExcludeMissing + voidAmount: JsonField = JsonMissing.of(), + @JsonProperty("void_reason") + @ExcludeMissing + voidReason: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + startingBalance, + voidAmount, + voidReason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -5937,36 +6174,17 @@ private constructor( @JsonProperty("void_reason") @ExcludeMissing fun _voidReason(): JsonField = voidReason - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): VoidLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - startingBalance() - voidAmount() - voidReason() - validated = true + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -6290,27 +6508,54 @@ private constructor( checkRequired("startingBalance", startingBalance), checkRequired("voidAmount", voidAmount), checkRequired("voidReason", voidReason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): VoidLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + startingBalance() + voidAmount() + voidReason() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -6359,22 +6604,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6500,10 +6738,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6522,20 +6773,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -6567,21 +6819,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6684,10 +6930,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6909,27 +7167,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6976,7 +7227,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -7014,60 +7275,93 @@ private constructor( "VoidLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, startingBalance=$startingBalance, voidAmount=$voidAmount, voidReason=$voidReason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class VoidInitiatedLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("new_block_expiry_date") - @ExcludeMissing - private val newBlockExpiryDate: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonProperty("void_amount") - @ExcludeMissing - private val voidAmount: JsonField = JsonMissing.of(), - @JsonProperty("void_reason") - @ExcludeMissing - private val voidReason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val newBlockExpiryDate: JsonField, + private val startingBalance: JsonField, + private val voidAmount: JsonField, + private val voidReason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("new_block_expiry_date") + @ExcludeMissing + newBlockExpiryDate: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + @JsonProperty("void_amount") + @ExcludeMissing + voidAmount: JsonField = JsonMissing.of(), + @JsonProperty("void_reason") + @ExcludeMissing + voidReason: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + newBlockExpiryDate, + startingBalance, + voidAmount, + voidReason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -7310,35 +7604,15 @@ private constructor( @ExcludeMissing fun _voidReason(): JsonField = voidReason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): VoidInitiatedLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - newBlockExpiryDate() - startingBalance() - voidAmount() - voidReason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7682,27 +7956,55 @@ private constructor( checkRequired("startingBalance", startingBalance), checkRequired("voidAmount", voidAmount), checkRequired("voidReason", voidReason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): VoidInitiatedLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + newBlockExpiryDate() + startingBalance() + voidAmount() + voidReason() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -7751,22 +8053,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7892,10 +8187,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7914,20 +8222,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -7959,21 +8268,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8076,10 +8379,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8301,27 +8616,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8368,7 +8676,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -8406,51 +8724,78 @@ private constructor( "VoidInitiatedLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, newBlockExpiryDate=$newBlockExpiryDate, startingBalance=$startingBalance, voidAmount=$voidAmount, voidReason=$voidReason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class AmendmentLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val startingBalance: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + startingBalance, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -8645,32 +8990,15 @@ private constructor( @ExcludeMissing fun _startingBalance(): JsonField = startingBalance + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AmendmentLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - startingBalance() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8960,27 +9288,52 @@ private constructor( checkRequired("ledgerSequenceNumber", ledgerSequenceNumber), checkRequired("metadata", metadata), checkRequired("startingBalance", startingBalance), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): AmendmentLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + startingBalance() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -9029,22 +9382,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9170,10 +9516,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -9192,20 +9551,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -9237,21 +9597,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9354,10 +9708,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -9579,27 +9945,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9646,7 +10005,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdPage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdPage.kt index 48915ef9..0335a1e1 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdPage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdPage.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.blocking.customers.credits.LedgerService +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.stream.Stream @@ -160,19 +158,20 @@ private constructor( ) = CustomerCreditLedgerListByExternalIdPage(ledgerService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") - private val data: JsonField> = - JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") + data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() @@ -187,9 +186,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -265,7 +270,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdPageAsync.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdPageAsync.kt index 2028c0d9..07bfabe6 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdPageAsync.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdPageAsync.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.async.customers.credits.LedgerServiceAsync +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.concurrent.CompletableFuture @@ -162,19 +160,20 @@ private constructor( ) = CustomerCreditLedgerListByExternalIdPageAsync(ledgerService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") - private val data: JsonField> = - JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") + data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() @@ -189,9 +188,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -267,7 +272,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdParams.kt index d729fbe6..739b45d8 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdParams.kt @@ -5,7 +5,6 @@ package com.withorb.api.models import com.fasterxml.jackson.annotation.JsonCreator import com.withorb.api.core.Enum import com.withorb.api.core.JsonField -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -143,39 +142,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> externalCustomerId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - createdAtGt?.let { - put("created_at[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtGte?.let { - put("created_at[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtLt?.let { - put("created_at[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtLte?.let { - put("created_at[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - currency?.let { put("currency", it) } - cursor?.let { put("cursor", it) } - entryStatus?.let { put("entry_status", it.toString()) } - entryType?.let { put("entry_type", it.toString()) } - limit?.let { put("limit", it.toString()) } - minimumAmount?.let { put("minimum_amount", it) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -193,7 +159,6 @@ private constructor( } /** A builder for [CustomerCreditLedgerListByExternalIdParams]. */ - @NoAutoDetect class Builder internal constructor() { private var externalCustomerId: String? = null @@ -431,6 +396,39 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> externalCustomerId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + createdAtGt?.let { + put("created_at[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtGte?.let { + put("created_at[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtLt?.let { + put("created_at[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtLte?.let { + put("created_at[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + currency?.let { put("currency", it) } + cursor?.let { put("cursor", it) } + entryStatus?.let { put("entry_status", it.toString()) } + entryType?.let { put("entry_type", it.toString()) } + limit?.let { put("limit", it.toString()) } + minimumAmount?.let { put("minimum_amount", it) } + putAll(additionalQueryParams) + } + .build() + class EntryStatus @JsonCreator private constructor(private val value: JsonField) : Enum { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdResponse.kt index afc32c9a..c06d6cdd 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdResponse.kt @@ -20,13 +20,11 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -408,51 +406,78 @@ private constructor( } } - @NoAutoDetect class IncrementLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val startingBalance: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + startingBalance, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -647,32 +672,15 @@ private constructor( @ExcludeMissing fun _startingBalance(): JsonField = startingBalance + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): IncrementLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - startingBalance() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -962,27 +970,52 @@ private constructor( checkRequired("ledgerSequenceNumber", ledgerSequenceNumber), checkRequired("metadata", metadata), checkRequired("startingBalance", startingBalance), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): IncrementLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + startingBalance() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -1031,22 +1064,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1172,10 +1198,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -1194,20 +1233,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -1239,21 +1279,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1356,10 +1390,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -1581,27 +1627,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1648,7 +1687,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -1686,60 +1735,89 @@ private constructor( "IncrementLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, startingBalance=$startingBalance, additionalProperties=$additionalProperties}" } - @NoAutoDetect class DecrementLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonProperty("event_id") - @ExcludeMissing - private val eventId: JsonField = JsonMissing.of(), - @JsonProperty("invoice_id") - @ExcludeMissing - private val invoiceId: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val startingBalance: JsonField, + private val eventId: JsonField, + private val invoiceId: JsonField, + private val priceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + @JsonProperty("event_id") @ExcludeMissing eventId: JsonField = JsonMissing.of(), + @JsonProperty("invoice_id") + @ExcludeMissing + invoiceId: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + startingBalance, + eventId, + invoiceId, + priceId, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -1973,35 +2051,15 @@ private constructor( */ @JsonProperty("price_id") @ExcludeMissing fun _priceId(): JsonField = priceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DecrementLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - startingBalance() - eventId() - invoiceId() - priceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2342,27 +2400,55 @@ private constructor( eventId, invoiceId, priceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect - class CreditBlock - @JsonCreator - private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private var validated: Boolean = false + + fun validate(): DecrementLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + startingBalance() + eventId() + invoiceId() + priceId() + validated = true + } + + class CreditBlock + private constructor( + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2411,22 +2497,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2552,10 +2631,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2574,20 +2666,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2619,21 +2712,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2736,10 +2823,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2961,27 +3060,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3028,7 +3120,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -3066,54 +3168,83 @@ private constructor( "DecrementLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, startingBalance=$startingBalance, eventId=$eventId, invoiceId=$invoiceId, priceId=$priceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class ExpirationChangeLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("new_block_expiry_date") - @ExcludeMissing - private val newBlockExpiryDate: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val newBlockExpiryDate: JsonField, + private val startingBalance: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("new_block_expiry_date") + @ExcludeMissing + newBlockExpiryDate: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + newBlockExpiryDate, + startingBalance, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -3325,33 +3456,15 @@ private constructor( @ExcludeMissing fun _startingBalance(): JsonField = startingBalance + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ExpirationChangeLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - newBlockExpiryDate() - startingBalance() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3669,27 +3782,53 @@ private constructor( checkRequired("metadata", metadata), checkRequired("newBlockExpiryDate", newBlockExpiryDate), checkRequired("startingBalance", startingBalance), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): ExpirationChangeLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + newBlockExpiryDate() + startingBalance() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3738,22 +3877,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3879,10 +4011,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -3901,20 +4046,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3946,21 +4092,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4063,10 +4203,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -4288,27 +4440,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4355,7 +4500,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -4393,51 +4548,78 @@ private constructor( "ExpirationChangeLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, newBlockExpiryDate=$newBlockExpiryDate, startingBalance=$startingBalance, additionalProperties=$additionalProperties}" } - @NoAutoDetect class CreditBlockExpiryLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val startingBalance: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + startingBalance, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -4632,32 +4814,15 @@ private constructor( @ExcludeMissing fun _startingBalance(): JsonField = startingBalance + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlockExpiryLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - startingBalance() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4949,27 +5114,52 @@ private constructor( checkRequired("ledgerSequenceNumber", ledgerSequenceNumber), checkRequired("metadata", metadata), checkRequired("startingBalance", startingBalance), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): CreditBlockExpiryLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + startingBalance() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -5018,22 +5208,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5159,10 +5342,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5181,20 +5377,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -5226,21 +5423,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5343,10 +5534,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5568,27 +5771,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5635,7 +5831,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -5673,57 +5879,88 @@ private constructor( "CreditBlockExpiryLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, startingBalance=$startingBalance, additionalProperties=$additionalProperties}" } - @NoAutoDetect class VoidLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonProperty("void_amount") - @ExcludeMissing - private val voidAmount: JsonField = JsonMissing.of(), - @JsonProperty("void_reason") - @ExcludeMissing - private val voidReason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val startingBalance: JsonField, + private val voidAmount: JsonField, + private val voidReason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + @JsonProperty("void_amount") + @ExcludeMissing + voidAmount: JsonField = JsonMissing.of(), + @JsonProperty("void_reason") + @ExcludeMissing + voidReason: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + startingBalance, + voidAmount, + voidReason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -5948,36 +6185,17 @@ private constructor( @JsonProperty("void_reason") @ExcludeMissing fun _voidReason(): JsonField = voidReason - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): VoidLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - startingBalance() - voidAmount() - voidReason() - validated = true + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -6301,27 +6519,54 @@ private constructor( checkRequired("startingBalance", startingBalance), checkRequired("voidAmount", voidAmount), checkRequired("voidReason", voidReason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): VoidLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + startingBalance() + voidAmount() + voidReason() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -6370,22 +6615,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6511,10 +6749,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6533,20 +6784,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -6578,21 +6830,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6695,10 +6941,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6920,27 +7178,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6987,7 +7238,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -7025,60 +7286,93 @@ private constructor( "VoidLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, startingBalance=$startingBalance, voidAmount=$voidAmount, voidReason=$voidReason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class VoidInitiatedLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("new_block_expiry_date") - @ExcludeMissing - private val newBlockExpiryDate: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonProperty("void_amount") - @ExcludeMissing - private val voidAmount: JsonField = JsonMissing.of(), - @JsonProperty("void_reason") - @ExcludeMissing - private val voidReason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val newBlockExpiryDate: JsonField, + private val startingBalance: JsonField, + private val voidAmount: JsonField, + private val voidReason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("new_block_expiry_date") + @ExcludeMissing + newBlockExpiryDate: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + @JsonProperty("void_amount") + @ExcludeMissing + voidAmount: JsonField = JsonMissing.of(), + @JsonProperty("void_reason") + @ExcludeMissing + voidReason: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + newBlockExpiryDate, + startingBalance, + voidAmount, + voidReason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -7321,35 +7615,15 @@ private constructor( @ExcludeMissing fun _voidReason(): JsonField = voidReason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): VoidInitiatedLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - newBlockExpiryDate() - startingBalance() - voidAmount() - voidReason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7693,27 +7967,55 @@ private constructor( checkRequired("startingBalance", startingBalance), checkRequired("voidAmount", voidAmount), checkRequired("voidReason", voidReason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): VoidInitiatedLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + newBlockExpiryDate() + startingBalance() + voidAmount() + voidReason() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -7762,22 +8064,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7903,10 +8198,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7925,20 +8233,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -7970,21 +8279,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8087,10 +8390,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8312,27 +8627,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8379,7 +8687,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -8417,51 +8735,78 @@ private constructor( "VoidInitiatedLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, newBlockExpiryDate=$newBlockExpiryDate, startingBalance=$startingBalance, voidAmount=$voidAmount, voidReason=$voidReason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class AmendmentLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val startingBalance: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + startingBalance, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -8656,32 +9001,15 @@ private constructor( @ExcludeMissing fun _startingBalance(): JsonField = startingBalance + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AmendmentLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - startingBalance() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8971,27 +9299,52 @@ private constructor( checkRequired("ledgerSequenceNumber", ledgerSequenceNumber), checkRequired("metadata", metadata), checkRequired("startingBalance", startingBalance), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): AmendmentLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + startingBalance() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -9040,22 +9393,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9181,10 +9527,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -9203,20 +9562,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -9248,21 +9608,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9365,10 +9719,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -9590,27 +9956,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9657,7 +10016,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListPage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListPage.kt index e5bdbd56..650287b1 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListPage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListPage.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.blocking.customers.credits.LedgerService +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.stream.Stream @@ -160,18 +158,20 @@ private constructor( ) = CustomerCreditLedgerListPage(ledgerService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") - private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") + data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -185,9 +185,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -261,7 +267,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListPageAsync.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListPageAsync.kt index 54004b45..cff005eb 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListPageAsync.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListPageAsync.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.async.customers.credits.LedgerServiceAsync +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.concurrent.CompletableFuture @@ -162,18 +160,20 @@ private constructor( ) = CustomerCreditLedgerListPageAsync(ledgerService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") - private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") + data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -187,9 +187,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -263,7 +269,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListParams.kt index 0e4e6c99..35c503f5 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListParams.kt @@ -5,7 +5,6 @@ package com.withorb.api.models import com.fasterxml.jackson.annotation.JsonCreator import com.withorb.api.core.Enum import com.withorb.api.core.JsonField -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -143,39 +142,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> customerId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - createdAtGt?.let { - put("created_at[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtGte?.let { - put("created_at[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtLt?.let { - put("created_at[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtLte?.let { - put("created_at[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - currency?.let { put("currency", it) } - cursor?.let { put("cursor", it) } - entryStatus?.let { put("entry_status", it.toString()) } - entryType?.let { put("entry_type", it.toString()) } - limit?.let { put("limit", it.toString()) } - minimumAmount?.let { put("minimum_amount", it) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -193,7 +159,6 @@ private constructor( } /** A builder for [CustomerCreditLedgerListParams]. */ - @NoAutoDetect class Builder internal constructor() { private var customerId: String? = null @@ -425,6 +390,39 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> customerId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + createdAtGt?.let { + put("created_at[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtGte?.let { + put("created_at[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtLt?.let { + put("created_at[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtLte?.let { + put("created_at[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + currency?.let { put("currency", it) } + cursor?.let { put("cursor", it) } + entryStatus?.let { put("entry_status", it.toString()) } + entryType?.let { put("entry_type", it.toString()) } + limit?.let { put("limit", it.toString()) } + minimumAmount?.let { put("minimum_amount", it) } + putAll(additionalQueryParams) + } + .build() + class EntryStatus @JsonCreator private constructor(private val value: JsonField) : Enum { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListResponse.kt index a7315721..9ebf4dea 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListResponse.kt @@ -20,13 +20,11 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -389,51 +387,78 @@ private constructor( } } - @NoAutoDetect class IncrementLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val startingBalance: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + startingBalance, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -628,32 +653,15 @@ private constructor( @ExcludeMissing fun _startingBalance(): JsonField = startingBalance + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): IncrementLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - startingBalance() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -943,27 +951,52 @@ private constructor( checkRequired("ledgerSequenceNumber", ledgerSequenceNumber), checkRequired("metadata", metadata), checkRequired("startingBalance", startingBalance), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): IncrementLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + startingBalance() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -1012,22 +1045,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1153,10 +1179,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -1175,20 +1214,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -1220,21 +1260,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1337,10 +1371,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -1562,27 +1608,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1629,7 +1668,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -1667,60 +1716,89 @@ private constructor( "IncrementLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, startingBalance=$startingBalance, additionalProperties=$additionalProperties}" } - @NoAutoDetect class DecrementLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonProperty("event_id") - @ExcludeMissing - private val eventId: JsonField = JsonMissing.of(), - @JsonProperty("invoice_id") - @ExcludeMissing - private val invoiceId: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val startingBalance: JsonField, + private val eventId: JsonField, + private val invoiceId: JsonField, + private val priceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + @JsonProperty("event_id") @ExcludeMissing eventId: JsonField = JsonMissing.of(), + @JsonProperty("invoice_id") + @ExcludeMissing + invoiceId: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + startingBalance, + eventId, + invoiceId, + priceId, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -1954,35 +2032,15 @@ private constructor( */ @JsonProperty("price_id") @ExcludeMissing fun _priceId(): JsonField = priceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DecrementLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - startingBalance() - eventId() - invoiceId() - priceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2323,27 +2381,55 @@ private constructor( eventId, invoiceId, priceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect - class CreditBlock - @JsonCreator - private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private var validated: Boolean = false + + fun validate(): DecrementLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + startingBalance() + eventId() + invoiceId() + priceId() + validated = true + } + + class CreditBlock + private constructor( + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2392,22 +2478,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2533,10 +2612,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2555,20 +2647,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2600,21 +2693,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2717,10 +2804,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2942,27 +3041,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3009,7 +3101,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -3047,54 +3149,83 @@ private constructor( "DecrementLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, startingBalance=$startingBalance, eventId=$eventId, invoiceId=$invoiceId, priceId=$priceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class ExpirationChangeLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("new_block_expiry_date") - @ExcludeMissing - private val newBlockExpiryDate: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val newBlockExpiryDate: JsonField, + private val startingBalance: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("new_block_expiry_date") + @ExcludeMissing + newBlockExpiryDate: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + newBlockExpiryDate, + startingBalance, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -3306,33 +3437,15 @@ private constructor( @ExcludeMissing fun _startingBalance(): JsonField = startingBalance + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ExpirationChangeLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - newBlockExpiryDate() - startingBalance() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3650,27 +3763,53 @@ private constructor( checkRequired("metadata", metadata), checkRequired("newBlockExpiryDate", newBlockExpiryDate), checkRequired("startingBalance", startingBalance), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): ExpirationChangeLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + newBlockExpiryDate() + startingBalance() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3719,22 +3858,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3860,10 +3992,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -3882,20 +4027,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3927,21 +4073,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4044,10 +4184,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -4269,27 +4421,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4336,7 +4481,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -4374,51 +4529,78 @@ private constructor( "ExpirationChangeLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, newBlockExpiryDate=$newBlockExpiryDate, startingBalance=$startingBalance, additionalProperties=$additionalProperties}" } - @NoAutoDetect class CreditBlockExpiryLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val startingBalance: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + startingBalance, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -4613,32 +4795,15 @@ private constructor( @ExcludeMissing fun _startingBalance(): JsonField = startingBalance + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlockExpiryLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - startingBalance() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4930,27 +5095,52 @@ private constructor( checkRequired("ledgerSequenceNumber", ledgerSequenceNumber), checkRequired("metadata", metadata), checkRequired("startingBalance", startingBalance), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): CreditBlockExpiryLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + startingBalance() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4999,22 +5189,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5140,10 +5323,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5162,20 +5358,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -5207,21 +5404,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5324,10 +5515,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5549,27 +5752,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5616,7 +5812,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -5654,57 +5860,88 @@ private constructor( "CreditBlockExpiryLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, startingBalance=$startingBalance, additionalProperties=$additionalProperties}" } - @NoAutoDetect class VoidLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonProperty("void_amount") - @ExcludeMissing - private val voidAmount: JsonField = JsonMissing.of(), - @JsonProperty("void_reason") - @ExcludeMissing - private val voidReason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val startingBalance: JsonField, + private val voidAmount: JsonField, + private val voidReason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + @JsonProperty("void_amount") + @ExcludeMissing + voidAmount: JsonField = JsonMissing.of(), + @JsonProperty("void_reason") + @ExcludeMissing + voidReason: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + startingBalance, + voidAmount, + voidReason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -5929,36 +6166,17 @@ private constructor( @JsonProperty("void_reason") @ExcludeMissing fun _voidReason(): JsonField = voidReason - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): VoidLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - startingBalance() - voidAmount() - voidReason() - validated = true + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -6282,27 +6500,54 @@ private constructor( checkRequired("startingBalance", startingBalance), checkRequired("voidAmount", voidAmount), checkRequired("voidReason", voidReason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): VoidLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + startingBalance() + voidAmount() + voidReason() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -6351,22 +6596,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6492,10 +6730,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6514,20 +6765,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -6559,21 +6811,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6676,10 +6922,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6901,27 +7159,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6968,7 +7219,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -7006,60 +7267,93 @@ private constructor( "VoidLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, startingBalance=$startingBalance, voidAmount=$voidAmount, voidReason=$voidReason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class VoidInitiatedLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("new_block_expiry_date") - @ExcludeMissing - private val newBlockExpiryDate: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonProperty("void_amount") - @ExcludeMissing - private val voidAmount: JsonField = JsonMissing.of(), - @JsonProperty("void_reason") - @ExcludeMissing - private val voidReason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val newBlockExpiryDate: JsonField, + private val startingBalance: JsonField, + private val voidAmount: JsonField, + private val voidReason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("new_block_expiry_date") + @ExcludeMissing + newBlockExpiryDate: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + @JsonProperty("void_amount") + @ExcludeMissing + voidAmount: JsonField = JsonMissing.of(), + @JsonProperty("void_reason") + @ExcludeMissing + voidReason: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + newBlockExpiryDate, + startingBalance, + voidAmount, + voidReason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -7302,35 +7596,15 @@ private constructor( @ExcludeMissing fun _voidReason(): JsonField = voidReason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): VoidInitiatedLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - newBlockExpiryDate() - startingBalance() - voidAmount() - voidReason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7674,27 +7948,55 @@ private constructor( checkRequired("startingBalance", startingBalance), checkRequired("voidAmount", voidAmount), checkRequired("voidReason", voidReason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): VoidInitiatedLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + newBlockExpiryDate() + startingBalance() + voidAmount() + voidReason() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -7743,22 +8045,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7884,10 +8179,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7906,20 +8214,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -7951,21 +8260,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8068,10 +8371,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8293,27 +8608,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8360,7 +8668,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -8398,51 +8716,78 @@ private constructor( "VoidInitiatedLedgerEntry{id=$id, amount=$amount, createdAt=$createdAt, creditBlock=$creditBlock, currency=$currency, customer=$customer, description=$description, endingBalance=$endingBalance, entryStatus=$entryStatus, entryType=$entryType, ledgerSequenceNumber=$ledgerSequenceNumber, metadata=$metadata, newBlockExpiryDate=$newBlockExpiryDate, startingBalance=$startingBalance, voidAmount=$voidAmount, voidReason=$voidReason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class AmendmentLedgerEntry - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_block") - @ExcludeMissing - private val creditBlock: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("entry_status") - @ExcludeMissing - private val entryStatus: JsonField = JsonMissing.of(), - @JsonProperty("entry_type") - @ExcludeMissing - private val entryType: JsonField = JsonMissing.of(), - @JsonProperty("ledger_sequence_number") - @ExcludeMissing - private val ledgerSequenceNumber: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditBlock: JsonField, + private val currency: JsonField, + private val customer: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val entryStatus: JsonField, + private val entryType: JsonField, + private val ledgerSequenceNumber: JsonField, + private val metadata: JsonField, + private val startingBalance: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_block") + @ExcludeMissing + creditBlock: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") + @ExcludeMissing + customer: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("entry_status") + @ExcludeMissing + entryStatus: JsonField = JsonMissing.of(), + @JsonProperty("entry_type") + @ExcludeMissing + entryType: JsonField = JsonMissing.of(), + @JsonProperty("ledger_sequence_number") + @ExcludeMissing + ledgerSequenceNumber: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + creditBlock, + currency, + customer, + description, + endingBalance, + entryStatus, + entryType, + ledgerSequenceNumber, + metadata, + startingBalance, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -8637,32 +8982,15 @@ private constructor( @ExcludeMissing fun _startingBalance(): JsonField = startingBalance + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AmendmentLedgerEntry = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - creditBlock().validate() - currency() - customer().validate() - description() - endingBalance() - entryStatus() - entryType() - ledgerSequenceNumber() - metadata().validate() - startingBalance() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8952,27 +9280,52 @@ private constructor( checkRequired("ledgerSequenceNumber", ledgerSequenceNumber), checkRequired("metadata", metadata), checkRequired("startingBalance", startingBalance), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): AmendmentLedgerEntry = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + creditBlock().validate() + currency() + customer().validate() + description() + endingBalance() + entryStatus() + entryType() + ledgerSequenceNumber() + metadata().validate() + startingBalance() + validated = true + } + class CreditBlock - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val expiryDate: JsonField, + private val perUnitCostBasis: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + ) : this(id, expiryDate, perUnitCostBasis, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -9021,22 +9374,15 @@ private constructor( @ExcludeMissing fun _perUnitCostBasis(): JsonField = perUnitCostBasis + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditBlock = apply { - if (validated) { - return@apply - } - - id() - expiryDate() - perUnitCostBasis() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9162,10 +9508,23 @@ private constructor( checkRequired("id", id), checkRequired("expiryDate", expiryDate), checkRequired("perUnitCostBasis", perUnitCostBasis), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditBlock = apply { + if (validated) { + return@apply + } + + id() + expiryDate() + perUnitCostBasis() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -9184,20 +9543,21 @@ private constructor( "CreditBlock{id=$id, expiryDate=$expiryDate, perUnitCostBasis=$perUnitCostBasis, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -9229,21 +9589,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9346,10 +9700,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -9571,27 +9937,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9638,7 +9997,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdPage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdPage.kt index d4be6cef..28b2175d 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdPage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdPage.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.blocking.customers.CreditService +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.stream.Stream @@ -92,19 +90,20 @@ private constructor( ) = CustomerCreditListByExternalIdPage(creditsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") - private val data: JsonField> = - JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") + data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() @@ -119,9 +118,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -196,7 +201,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdPageAsync.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdPageAsync.kt index 9f36d633..f97f7b30 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdPageAsync.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdPageAsync.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.async.customers.CreditServiceAsync +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.concurrent.CompletableFuture @@ -94,19 +92,20 @@ private constructor( ) = CustomerCreditListByExternalIdPageAsync(creditsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") - private val data: JsonField> = - JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") + data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() @@ -121,9 +120,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -198,7 +203,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdParams.kt index 3fc5fccf..a5ab67ad 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -54,25 +53,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> externalCustomerId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - currency?.let { put("currency", it) } - cursor?.let { put("cursor", it) } - includeAllBlocks?.let { put("include_all_blocks", it.toString()) } - limit?.let { put("limit", it.toString()) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -90,7 +70,6 @@ private constructor( } /** A builder for [CustomerCreditListByExternalIdParams]. */ - @NoAutoDetect class Builder internal constructor() { private var externalCustomerId: String? = null @@ -289,6 +268,25 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> externalCustomerId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + currency?.let { put("currency", it) } + cursor?.let { put("cursor", it) } + includeAllBlocks?.let { put("include_all_blocks", it.toString()) } + limit?.let { put("limit", it.toString()) } + putAll(additionalQueryParams) + } + .build() + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdResponse.kt index ec9fe229..20e72ffd 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdResponse.kt @@ -11,42 +11,54 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class CustomerCreditListByExternalIdResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("balance") - @ExcludeMissing - private val balance: JsonField = JsonMissing.of(), - @JsonProperty("effective_date") - @ExcludeMissing - private val effectiveDate: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("maximum_initial_balance") - @ExcludeMissing - private val maximumInitialBalance: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val balance: JsonField, + private val effectiveDate: JsonField, + private val expiryDate: JsonField, + private val maximumInitialBalance: JsonField, + private val perUnitCostBasis: JsonField, + private val status: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("balance") @ExcludeMissing balance: JsonField = JsonMissing.of(), + @JsonProperty("effective_date") + @ExcludeMissing + effectiveDate: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("maximum_initial_balance") + @ExcludeMissing + maximumInitialBalance: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + ) : this( + id, + balance, + effectiveDate, + expiryDate, + maximumInitialBalance, + perUnitCostBasis, + status, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -152,26 +164,15 @@ private constructor( */ @JsonProperty("status") @ExcludeMissing fun _status(): JsonField = status + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CustomerCreditListByExternalIdResponse = apply { - if (validated) { - return@apply - } - - id() - balance() - effectiveDate() - expiryDate() - maximumInitialBalance() - perUnitCostBasis() - status() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -379,10 +380,27 @@ private constructor( checkRequired("maximumInitialBalance", maximumInitialBalance), checkRequired("perUnitCostBasis", perUnitCostBasis), checkRequired("status", status), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CustomerCreditListByExternalIdResponse = apply { + if (validated) { + return@apply + } + + id() + balance() + effectiveDate() + expiryDate() + maximumInitialBalance() + perUnitCostBasis() + status() + validated = true + } + class Status @JsonCreator private constructor(private val value: JsonField) : Enum { /** diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListPage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListPage.kt index e45dd316..34c10cb8 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListPage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListPage.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.blocking.customers.CreditService +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.stream.Stream @@ -92,18 +90,20 @@ private constructor( ) = CustomerCreditListPage(creditsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") - private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") + data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -117,9 +117,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -190,7 +196,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListPageAsync.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListPageAsync.kt index bd7630c6..51d1d0d1 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListPageAsync.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListPageAsync.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.async.customers.CreditServiceAsync +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.concurrent.CompletableFuture @@ -94,18 +92,20 @@ private constructor( ) = CustomerCreditListPageAsync(creditsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") - private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") + data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -119,9 +119,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -193,7 +199,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListParams.kt index 2b136660..210e227b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -54,25 +53,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> customerId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - currency?.let { put("currency", it) } - cursor?.let { put("cursor", it) } - includeAllBlocks?.let { put("include_all_blocks", it.toString()) } - limit?.let { put("limit", it.toString()) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -89,7 +69,6 @@ private constructor( } /** A builder for [CustomerCreditListParams]. */ - @NoAutoDetect class Builder internal constructor() { private var customerId: String? = null @@ -283,6 +262,25 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> customerId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + currency?.let { put("currency", it) } + cursor?.let { put("cursor", it) } + includeAllBlocks?.let { put("include_all_blocks", it.toString()) } + limit?.let { put("limit", it.toString()) } + putAll(additionalQueryParams) + } + .build() + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListResponse.kt index 6542dbbe..1b121e8a 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListResponse.kt @@ -11,42 +11,54 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class CustomerCreditListResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("balance") - @ExcludeMissing - private val balance: JsonField = JsonMissing.of(), - @JsonProperty("effective_date") - @ExcludeMissing - private val effectiveDate: JsonField = JsonMissing.of(), - @JsonProperty("expiry_date") - @ExcludeMissing - private val expiryDate: JsonField = JsonMissing.of(), - @JsonProperty("maximum_initial_balance") - @ExcludeMissing - private val maximumInitialBalance: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val balance: JsonField, + private val effectiveDate: JsonField, + private val expiryDate: JsonField, + private val maximumInitialBalance: JsonField, + private val perUnitCostBasis: JsonField, + private val status: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("balance") @ExcludeMissing balance: JsonField = JsonMissing.of(), + @JsonProperty("effective_date") + @ExcludeMissing + effectiveDate: JsonField = JsonMissing.of(), + @JsonProperty("expiry_date") + @ExcludeMissing + expiryDate: JsonField = JsonMissing.of(), + @JsonProperty("maximum_initial_balance") + @ExcludeMissing + maximumInitialBalance: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + ) : this( + id, + balance, + effectiveDate, + expiryDate, + maximumInitialBalance, + perUnitCostBasis, + status, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -152,26 +164,15 @@ private constructor( */ @JsonProperty("status") @ExcludeMissing fun _status(): JsonField = status + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CustomerCreditListResponse = apply { - if (validated) { - return@apply - } - - id() - balance() - effectiveDate() - expiryDate() - maximumInitialBalance() - perUnitCostBasis() - status() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -375,10 +376,27 @@ private constructor( checkRequired("maximumInitialBalance", maximumInitialBalance), checkRequired("perUnitCostBasis", perUnitCostBasis), checkRequired("status", status), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CustomerCreditListResponse = apply { + if (validated) { + return@apply + } + + id() + balance() + effectiveDate() + expiryDate() + maximumInitialBalance() + perUnitCostBasis() + status() + validated = true + } + class Status @JsonCreator private constructor(private val value: JsonField) : Enum { /** diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateByExternalIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateByExternalIdParams.kt index d24323f9..1c5a9c37 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateByExternalIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateByExternalIdParams.kt @@ -11,15 +11,13 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -173,474 +171,309 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body + fun toBuilder() = Builder().from(this) - fun _pathParam(index: Int): String = - when (index) { - 0 -> externalCustomerId - else -> "" - } + companion object { - override fun _headers(): Headers = additionalHeaders + /** + * Returns a mutable builder for constructing an instance of + * [CustomerCreditTopUpCreateByExternalIdParams]. + * + * The following fields are required: + * ```java + * .externalCustomerId() + * .amount() + * .currency() + * .invoiceSettings() + * .perUnitCostBasis() + * .threshold() + * ``` + */ + @JvmStatic fun builder() = Builder() + } - override fun _queryParams(): QueryParams = additionalQueryParams + /** A builder for [CustomerCreditTopUpCreateByExternalIdParams]. */ + class Builder internal constructor() { - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("invoice_settings") - @ExcludeMissing - private val invoiceSettings: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonProperty("threshold") - @ExcludeMissing - private val threshold: JsonField = JsonMissing.of(), - @JsonProperty("active_from") - @ExcludeMissing - private val activeFrom: JsonField = JsonMissing.of(), - @JsonProperty("expires_after") - @ExcludeMissing - private val expiresAfter: JsonField = JsonMissing.of(), - @JsonProperty("expires_after_unit") - @ExcludeMissing - private val expiresAfterUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { + private var externalCustomerId: String? = null + private var body: Body.Builder = Body.builder() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from( + customerCreditTopUpCreateByExternalIdParams: CustomerCreditTopUpCreateByExternalIdParams + ) = apply { + externalCustomerId = customerCreditTopUpCreateByExternalIdParams.externalCustomerId + body = customerCreditTopUpCreateByExternalIdParams.body.toBuilder() + additionalHeaders = + customerCreditTopUpCreateByExternalIdParams.additionalHeaders.toBuilder() + additionalQueryParams = + customerCreditTopUpCreateByExternalIdParams.additionalQueryParams.toBuilder() + } + + fun externalCustomerId(externalCustomerId: String) = apply { + this.externalCustomerId = externalCustomerId + } + + /** The amount to increment when the threshold is reached. */ + fun amount(amount: String) = apply { body.amount(amount) } /** - * The amount to increment when the threshold is reached. + * Sets [Builder.amount] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * You should usually call [Builder.amount] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - fun amount(): String = amount.getRequired("amount") + fun amount(amount: JsonField) = apply { body.amount(amount) } /** * The currency or custom pricing unit to use for this top-up. If this is a real-world * currency, it must match the customer's invoicing currency. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun currency(): String = currency.getRequired("currency") + fun currency(currency: String) = apply { body.currency(currency) } /** - * Settings for invoices generated by triggered top-ups. + * Sets [Builder.currency] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * You should usually call [Builder.currency] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - fun invoiceSettings(): InvoiceSettings = invoiceSettings.getRequired("invoice_settings") + fun currency(currency: JsonField) = apply { body.currency(currency) } - /** - * How much, in the customer's currency, to charge for each unit. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun perUnitCostBasis(): String = perUnitCostBasis.getRequired("per_unit_cost_basis") + /** Settings for invoices generated by triggered top-ups. */ + fun invoiceSettings(invoiceSettings: InvoiceSettings) = apply { + body.invoiceSettings(invoiceSettings) + } /** - * The threshold at which to trigger the top-up. If the balance is at or below this - * threshold, the top-up will be triggered. + * Sets [Builder.invoiceSettings] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * You should usually call [Builder.invoiceSettings] with a well-typed [InvoiceSettings] + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. */ - fun threshold(): String = threshold.getRequired("threshold") + fun invoiceSettings(invoiceSettings: JsonField) = apply { + body.invoiceSettings(invoiceSettings) + } - /** - * The date from which the top-up is active. If unspecified, the top-up is active - * immediately. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun activeFrom(): Optional = - Optional.ofNullable(activeFrom.getNullable("active_from")) + /** How much, in the customer's currency, to charge for each unit. */ + fun perUnitCostBasis(perUnitCostBasis: String) = apply { + body.perUnitCostBasis(perUnitCostBasis) + } /** - * The number of days or months after which the top-up expires. If unspecified, it does not - * expire. + * Sets [Builder.perUnitCostBasis] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.perUnitCostBasis] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun expiresAfter(): Optional = - Optional.ofNullable(expiresAfter.getNullable("expires_after")) + fun perUnitCostBasis(perUnitCostBasis: JsonField) = apply { + body.perUnitCostBasis(perUnitCostBasis) + } /** - * The unit of expires_after. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * The threshold at which to trigger the top-up. If the balance is at or below this + * threshold, the top-up will be triggered. */ - fun expiresAfterUnit(): Optional = - Optional.ofNullable(expiresAfterUnit.getNullable("expires_after_unit")) + fun threshold(threshold: String) = apply { body.threshold(threshold) } /** - * Returns the raw JSON value of [amount]. + * Sets [Builder.threshold] to an arbitrary JSON value. * - * Unlike [amount], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.threshold] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. */ - @JsonProperty("amount") @ExcludeMissing fun _amount(): JsonField = amount + fun threshold(threshold: JsonField) = apply { body.threshold(threshold) } /** - * Returns the raw JSON value of [currency]. - * - * Unlike [currency], this method doesn't throw if the JSON field has an unexpected type. + * The date from which the top-up is active. If unspecified, the top-up is active + * immediately. */ - @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + fun activeFrom(activeFrom: OffsetDateTime?) = apply { body.activeFrom(activeFrom) } - /** - * Returns the raw JSON value of [invoiceSettings]. - * - * Unlike [invoiceSettings], this method doesn't throw if the JSON field has an unexpected - * type. - */ - @JsonProperty("invoice_settings") - @ExcludeMissing - fun _invoiceSettings(): JsonField = invoiceSettings + /** Alias for calling [Builder.activeFrom] with `activeFrom.orElse(null)`. */ + fun activeFrom(activeFrom: Optional) = activeFrom(activeFrom.getOrNull()) /** - * Returns the raw JSON value of [perUnitCostBasis]. + * Sets [Builder.activeFrom] to an arbitrary JSON value. * - * Unlike [perUnitCostBasis], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.activeFrom] with a well-typed [OffsetDateTime] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - fun _perUnitCostBasis(): JsonField = perUnitCostBasis + fun activeFrom(activeFrom: JsonField) = apply { + body.activeFrom(activeFrom) + } /** - * Returns the raw JSON value of [threshold]. - * - * Unlike [threshold], this method doesn't throw if the JSON field has an unexpected type. + * The number of days or months after which the top-up expires. If unspecified, it does not + * expire. */ - @JsonProperty("threshold") @ExcludeMissing fun _threshold(): JsonField = threshold + fun expiresAfter(expiresAfter: Long?) = apply { body.expiresAfter(expiresAfter) } /** - * Returns the raw JSON value of [activeFrom]. + * Alias for [Builder.expiresAfter]. * - * Unlike [activeFrom], this method doesn't throw if the JSON field has an unexpected type. + * This unboxed primitive overload exists for backwards compatibility. */ - @JsonProperty("active_from") - @ExcludeMissing - fun _activeFrom(): JsonField = activeFrom + fun expiresAfter(expiresAfter: Long) = expiresAfter(expiresAfter as Long?) + + /** Alias for calling [Builder.expiresAfter] with `expiresAfter.orElse(null)`. */ + fun expiresAfter(expiresAfter: Optional) = expiresAfter(expiresAfter.getOrNull()) /** - * Returns the raw JSON value of [expiresAfter]. + * Sets [Builder.expiresAfter] to an arbitrary JSON value. * - * Unlike [expiresAfter], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.expiresAfter] with a well-typed [Long] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. */ - @JsonProperty("expires_after") - @ExcludeMissing - fun _expiresAfter(): JsonField = expiresAfter + fun expiresAfter(expiresAfter: JsonField) = apply { body.expiresAfter(expiresAfter) } + + /** The unit of expires_after. */ + fun expiresAfterUnit(expiresAfterUnit: ExpiresAfterUnit?) = apply { + body.expiresAfterUnit(expiresAfterUnit) + } + + /** Alias for calling [Builder.expiresAfterUnit] with `expiresAfterUnit.orElse(null)`. */ + fun expiresAfterUnit(expiresAfterUnit: Optional) = + expiresAfterUnit(expiresAfterUnit.getOrNull()) /** - * Returns the raw JSON value of [expiresAfterUnit]. + * Sets [Builder.expiresAfterUnit] to an arbitrary JSON value. * - * Unlike [expiresAfterUnit], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.expiresAfterUnit] with a well-typed [ExpiresAfterUnit] + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. */ - @JsonProperty("expires_after_unit") - @ExcludeMissing - fun _expiresAfterUnit(): JsonField = expiresAfterUnit + fun expiresAfterUnit(expiresAfterUnit: JsonField) = apply { + body.expiresAfterUnit(expiresAfterUnit) + } - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun additionalBodyProperties(additionalBodyProperties: Map) = apply { + body.additionalProperties(additionalBodyProperties) + } - private var validated: Boolean = false + fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { + body.putAdditionalProperty(key, value) + } - fun validate(): Body = apply { - if (validated) { - return@apply + fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = + apply { + body.putAllAdditionalProperties(additionalBodyProperties) } - amount() - currency() - invoiceSettings().validate() - perUnitCostBasis() - threshold() - activeFrom() - expiresAfter() - expiresAfterUnit() - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { + fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .amount() - * .currency() - * .invoiceSettings() - * .perUnitCostBasis() - * .threshold() - * ``` - */ - @JvmStatic fun builder() = Builder() + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + body.removeAllAdditionalProperties(keys) } - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var amount: JsonField? = null - private var currency: JsonField? = null - private var invoiceSettings: JsonField? = null - private var perUnitCostBasis: JsonField? = null - private var threshold: JsonField? = null - private var activeFrom: JsonField = JsonMissing.of() - private var expiresAfter: JsonField = JsonMissing.of() - private var expiresAfterUnit: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - amount = body.amount - currency = body.currency - invoiceSettings = body.invoiceSettings - perUnitCostBasis = body.perUnitCostBasis - threshold = body.threshold - activeFrom = body.activeFrom - expiresAfter = body.expiresAfter - expiresAfterUnit = body.expiresAfterUnit - additionalProperties = body.additionalProperties.toMutableMap() - } - - /** The amount to increment when the threshold is reached. */ - fun amount(amount: String) = amount(JsonField.of(amount)) - - /** - * Sets [Builder.amount] to an arbitrary JSON value. - * - * You should usually call [Builder.amount] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun amount(amount: JsonField) = apply { this.amount = amount } - - /** - * The currency or custom pricing unit to use for this top-up. If this is a real-world - * currency, it must match the customer's invoicing currency. - */ - fun currency(currency: String) = currency(JsonField.of(currency)) - - /** - * Sets [Builder.currency] to an arbitrary JSON value. - * - * You should usually call [Builder.currency] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun currency(currency: JsonField) = apply { this.currency = currency } - - /** Settings for invoices generated by triggered top-ups. */ - fun invoiceSettings(invoiceSettings: InvoiceSettings) = - invoiceSettings(JsonField.of(invoiceSettings)) - - /** - * Sets [Builder.invoiceSettings] to an arbitrary JSON value. - * - * You should usually call [Builder.invoiceSettings] with a well-typed [InvoiceSettings] - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - fun invoiceSettings(invoiceSettings: JsonField) = apply { - this.invoiceSettings = invoiceSettings - } - - /** How much, in the customer's currency, to charge for each unit. */ - fun perUnitCostBasis(perUnitCostBasis: String) = - perUnitCostBasis(JsonField.of(perUnitCostBasis)) - - /** - * Sets [Builder.perUnitCostBasis] to an arbitrary JSON value. - * - * You should usually call [Builder.perUnitCostBasis] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun perUnitCostBasis(perUnitCostBasis: JsonField) = apply { - this.perUnitCostBasis = perUnitCostBasis - } - - /** - * The threshold at which to trigger the top-up. If the balance is at or below this - * threshold, the top-up will be triggered. - */ - fun threshold(threshold: String) = threshold(JsonField.of(threshold)) - - /** - * Sets [Builder.threshold] to an arbitrary JSON value. - * - * You should usually call [Builder.threshold] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun threshold(threshold: JsonField) = apply { this.threshold = threshold } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - /** - * The date from which the top-up is active. If unspecified, the top-up is active - * immediately. - */ - fun activeFrom(activeFrom: OffsetDateTime?) = - activeFrom(JsonField.ofNullable(activeFrom)) + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - /** Alias for calling [Builder.activeFrom] with `activeFrom.orElse(null)`. */ - fun activeFrom(activeFrom: Optional) = - activeFrom(activeFrom.getOrNull()) + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) + } - /** - * Sets [Builder.activeFrom] to an arbitrary JSON value. - * - * You should usually call [Builder.activeFrom] with a well-typed [OffsetDateTime] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun activeFrom(activeFrom: JsonField) = apply { - this.activeFrom = activeFrom - } + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } - /** - * The number of days or months after which the top-up expires. If unspecified, it does - * not expire. - */ - fun expiresAfter(expiresAfter: Long?) = expiresAfter(JsonField.ofNullable(expiresAfter)) + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - /** - * Alias for [Builder.expiresAfter]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun expiresAfter(expiresAfter: Long) = expiresAfter(expiresAfter as Long?) + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - /** Alias for calling [Builder.expiresAfter] with `expiresAfter.orElse(null)`. */ - fun expiresAfter(expiresAfter: Optional) = expiresAfter(expiresAfter.getOrNull()) + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } - /** - * Sets [Builder.expiresAfter] to an arbitrary JSON value. - * - * You should usually call [Builder.expiresAfter] with a well-typed [Long] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun expiresAfter(expiresAfter: JsonField) = apply { - this.expiresAfter = expiresAfter - } + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } - /** The unit of expires_after. */ - fun expiresAfterUnit(expiresAfterUnit: ExpiresAfterUnit?) = - expiresAfterUnit(JsonField.ofNullable(expiresAfterUnit)) + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** - * Alias for calling [Builder.expiresAfterUnit] with `expiresAfterUnit.orElse(null)`. - */ - fun expiresAfterUnit(expiresAfterUnit: Optional) = - expiresAfterUnit(expiresAfterUnit.getOrNull()) + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** - * Sets [Builder.expiresAfterUnit] to an arbitrary JSON value. - * - * You should usually call [Builder.expiresAfterUnit] with a well-typed - * [ExpiresAfterUnit] value instead. This method is primarily for setting the field to - * an undocumented or not yet supported value. - */ - fun expiresAfterUnit(expiresAfterUnit: JsonField) = apply { - this.expiresAfterUnit = expiresAfterUnit - } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .amount() - * .currency() - * .invoiceSettings() - * .perUnitCostBasis() - * .threshold() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body( - checkRequired("amount", amount), - checkRequired("currency", currency), - checkRequired("invoiceSettings", invoiceSettings), - checkRequired("perUnitCostBasis", perUnitCostBasis), - checkRequired("threshold", threshold), - activeFrom, - expiresAfter, - expiresAfterUnit, - additionalProperties.toImmutable(), - ) + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } - override fun equals(other: Any?): Boolean { - if (this === other) { - return true + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) } - return /* spotless:off */ other is Body && amount == other.amount && currency == other.currency && invoiceSettings == other.invoiceSettings && perUnitCostBasis == other.perUnitCostBasis && threshold == other.threshold && activeFrom == other.activeFrom && expiresAfter == other.expiresAfter && expiresAfterUnit == other.expiresAfterUnit && additionalProperties == other.additionalProperties /* spotless:on */ + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) } - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(amount, currency, invoiceSettings, perUnitCostBasis, threshold, activeFrom, expiresAfter, expiresAfterUnit, additionalProperties) } - /* spotless:on */ + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } - override fun hashCode(): Int = hashCode + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - override fun toString() = - "Body{amount=$amount, currency=$currency, invoiceSettings=$invoiceSettings, perUnitCostBasis=$perUnitCostBasis, threshold=$threshold, activeFrom=$activeFrom, expiresAfter=$expiresAfter, expiresAfterUnit=$expiresAfterUnit, additionalProperties=$additionalProperties}" - } + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - fun toBuilder() = Builder().from(this) + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } - companion object { + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } /** - * Returns a mutable builder for constructing an instance of - * [CustomerCreditTopUpCreateByExternalIdParams]. + * Returns an immutable instance of [CustomerCreditTopUpCreateByExternalIdParams]. + * + * Further updates to this [Builder] will not mutate the returned instance. * * The following fields are required: * ```java @@ -651,336 +484,524 @@ private constructor( * .perUnitCostBasis() * .threshold() * ``` + * + * @throws IllegalStateException if any required field is unset. */ - @JvmStatic fun builder() = Builder() + fun build(): CustomerCreditTopUpCreateByExternalIdParams = + CustomerCreditTopUpCreateByExternalIdParams( + checkRequired("externalCustomerId", externalCustomerId), + body.build(), + additionalHeaders.build(), + additionalQueryParams.build(), + ) } - /** A builder for [CustomerCreditTopUpCreateByExternalIdParams]. */ - @NoAutoDetect - class Builder internal constructor() { - - private var externalCustomerId: String? = null - private var body: Body.Builder = Body.builder() - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + @JvmSynthetic internal fun _body(): Body = body - @JvmSynthetic - internal fun from( - customerCreditTopUpCreateByExternalIdParams: CustomerCreditTopUpCreateByExternalIdParams - ) = apply { - externalCustomerId = customerCreditTopUpCreateByExternalIdParams.externalCustomerId - body = customerCreditTopUpCreateByExternalIdParams.body.toBuilder() - additionalHeaders = - customerCreditTopUpCreateByExternalIdParams.additionalHeaders.toBuilder() - additionalQueryParams = - customerCreditTopUpCreateByExternalIdParams.additionalQueryParams.toBuilder() + fun _pathParam(index: Int): String = + when (index) { + 0 -> externalCustomerId + else -> "" } - fun externalCustomerId(externalCustomerId: String) = apply { - this.externalCustomerId = externalCustomerId - } + override fun _headers(): Headers = additionalHeaders - /** The amount to increment when the threshold is reached. */ - fun amount(amount: String) = apply { body.amount(amount) } + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body + private constructor( + private val amount: JsonField, + private val currency: JsonField, + private val invoiceSettings: JsonField, + private val perUnitCostBasis: JsonField, + private val threshold: JsonField, + private val activeFrom: JsonField, + private val expiresAfter: JsonField, + private val expiresAfterUnit: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("invoice_settings") + @ExcludeMissing + invoiceSettings: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + @JsonProperty("threshold") + @ExcludeMissing + threshold: JsonField = JsonMissing.of(), + @JsonProperty("active_from") + @ExcludeMissing + activeFrom: JsonField = JsonMissing.of(), + @JsonProperty("expires_after") + @ExcludeMissing + expiresAfter: JsonField = JsonMissing.of(), + @JsonProperty("expires_after_unit") + @ExcludeMissing + expiresAfterUnit: JsonField = JsonMissing.of(), + ) : this( + amount, + currency, + invoiceSettings, + perUnitCostBasis, + threshold, + activeFrom, + expiresAfter, + expiresAfterUnit, + mutableMapOf(), + ) /** - * Sets [Builder.amount] to an arbitrary JSON value. + * The amount to increment when the threshold is reached. * - * You should usually call [Builder.amount] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun amount(amount: JsonField) = apply { body.amount(amount) } + fun amount(): String = amount.getRequired("amount") /** * The currency or custom pricing unit to use for this top-up. If this is a real-world * currency, it must match the customer's invoicing currency. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun currency(currency: String) = apply { body.currency(currency) } + fun currency(): String = currency.getRequired("currency") /** - * Sets [Builder.currency] to an arbitrary JSON value. + * Settings for invoices generated by triggered top-ups. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun invoiceSettings(): InvoiceSettings = invoiceSettings.getRequired("invoice_settings") + + /** + * How much, in the customer's currency, to charge for each unit. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun perUnitCostBasis(): String = perUnitCostBasis.getRequired("per_unit_cost_basis") + + /** + * The threshold at which to trigger the top-up. If the balance is at or below this + * threshold, the top-up will be triggered. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun threshold(): String = threshold.getRequired("threshold") + + /** + * The date from which the top-up is active. If unspecified, the top-up is active + * immediately. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun activeFrom(): Optional = + Optional.ofNullable(activeFrom.getNullable("active_from")) + + /** + * The number of days or months after which the top-up expires. If unspecified, it does not + * expire. * - * You should usually call [Builder.currency] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun currency(currency: JsonField) = apply { body.currency(currency) } - - /** Settings for invoices generated by triggered top-ups. */ - fun invoiceSettings(invoiceSettings: InvoiceSettings) = apply { - body.invoiceSettings(invoiceSettings) - } + fun expiresAfter(): Optional = + Optional.ofNullable(expiresAfter.getNullable("expires_after")) /** - * Sets [Builder.invoiceSettings] to an arbitrary JSON value. + * The unit of expires_after. * - * You should usually call [Builder.invoiceSettings] with a well-typed [InvoiceSettings] - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun invoiceSettings(invoiceSettings: JsonField) = apply { - body.invoiceSettings(invoiceSettings) - } - - /** How much, in the customer's currency, to charge for each unit. */ - fun perUnitCostBasis(perUnitCostBasis: String) = apply { - body.perUnitCostBasis(perUnitCostBasis) - } + fun expiresAfterUnit(): Optional = + Optional.ofNullable(expiresAfterUnit.getNullable("expires_after_unit")) /** - * Sets [Builder.perUnitCostBasis] to an arbitrary JSON value. + * Returns the raw JSON value of [amount]. * - * You should usually call [Builder.perUnitCostBasis] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [amount], this method doesn't throw if the JSON field has an unexpected type. */ - fun perUnitCostBasis(perUnitCostBasis: JsonField) = apply { - body.perUnitCostBasis(perUnitCostBasis) - } + @JsonProperty("amount") @ExcludeMissing fun _amount(): JsonField = amount /** - * The threshold at which to trigger the top-up. If the balance is at or below this - * threshold, the top-up will be triggered. + * Returns the raw JSON value of [currency]. + * + * Unlike [currency], this method doesn't throw if the JSON field has an unexpected type. */ - fun threshold(threshold: String) = apply { body.threshold(threshold) } + @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency /** - * Sets [Builder.threshold] to an arbitrary JSON value. + * Returns the raw JSON value of [invoiceSettings]. * - * You should usually call [Builder.threshold] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. + * Unlike [invoiceSettings], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun threshold(threshold: JsonField) = apply { body.threshold(threshold) } + @JsonProperty("invoice_settings") + @ExcludeMissing + fun _invoiceSettings(): JsonField = invoiceSettings /** - * The date from which the top-up is active. If unspecified, the top-up is active - * immediately. + * Returns the raw JSON value of [perUnitCostBasis]. + * + * Unlike [perUnitCostBasis], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun activeFrom(activeFrom: OffsetDateTime?) = apply { body.activeFrom(activeFrom) } - - /** Alias for calling [Builder.activeFrom] with `activeFrom.orElse(null)`. */ - fun activeFrom(activeFrom: Optional) = activeFrom(activeFrom.getOrNull()) + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + fun _perUnitCostBasis(): JsonField = perUnitCostBasis /** - * Sets [Builder.activeFrom] to an arbitrary JSON value. + * Returns the raw JSON value of [threshold]. * - * You should usually call [Builder.activeFrom] with a well-typed [OffsetDateTime] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [threshold], this method doesn't throw if the JSON field has an unexpected type. */ - fun activeFrom(activeFrom: JsonField) = apply { - body.activeFrom(activeFrom) - } + @JsonProperty("threshold") @ExcludeMissing fun _threshold(): JsonField = threshold /** - * The number of days or months after which the top-up expires. If unspecified, it does not - * expire. + * Returns the raw JSON value of [activeFrom]. + * + * Unlike [activeFrom], this method doesn't throw if the JSON field has an unexpected type. */ - fun expiresAfter(expiresAfter: Long?) = apply { body.expiresAfter(expiresAfter) } + @JsonProperty("active_from") + @ExcludeMissing + fun _activeFrom(): JsonField = activeFrom /** - * Alias for [Builder.expiresAfter]. + * Returns the raw JSON value of [expiresAfter]. * - * This unboxed primitive overload exists for backwards compatibility. + * Unlike [expiresAfter], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun expiresAfter(expiresAfter: Long) = expiresAfter(expiresAfter as Long?) - - /** Alias for calling [Builder.expiresAfter] with `expiresAfter.orElse(null)`. */ - fun expiresAfter(expiresAfter: Optional) = expiresAfter(expiresAfter.getOrNull()) + @JsonProperty("expires_after") + @ExcludeMissing + fun _expiresAfter(): JsonField = expiresAfter /** - * Sets [Builder.expiresAfter] to an arbitrary JSON value. + * Returns the raw JSON value of [expiresAfterUnit]. * - * You should usually call [Builder.expiresAfter] with a well-typed [Long] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. + * Unlike [expiresAfterUnit], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun expiresAfter(expiresAfter: JsonField) = apply { body.expiresAfter(expiresAfter) } + @JsonProperty("expires_after_unit") + @ExcludeMissing + fun _expiresAfterUnit(): JsonField = expiresAfterUnit - /** The unit of expires_after. */ - fun expiresAfterUnit(expiresAfterUnit: ExpiresAfterUnit?) = apply { - body.expiresAfterUnit(expiresAfterUnit) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } - /** Alias for calling [Builder.expiresAfterUnit] with `expiresAfterUnit.orElse(null)`. */ - fun expiresAfterUnit(expiresAfterUnit: Optional) = - expiresAfterUnit(expiresAfterUnit.getOrNull()) + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) - /** - * Sets [Builder.expiresAfterUnit] to an arbitrary JSON value. - * - * You should usually call [Builder.expiresAfterUnit] with a well-typed [ExpiresAfterUnit] - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun expiresAfterUnit(expiresAfterUnit: JsonField) = apply { - body.expiresAfterUnit(expiresAfterUnit) - } + fun toBuilder() = Builder().from(this) - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { - body.additionalProperties(additionalBodyProperties) - } + companion object { - fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - body.putAdditionalProperty(key, value) + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .amount() + * .currency() + * .invoiceSettings() + * .perUnitCostBasis() + * .threshold() + * ``` + */ + @JvmStatic fun builder() = Builder() } - fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = - apply { - body.putAllAdditionalProperties(additionalBodyProperties) + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var amount: JsonField? = null + private var currency: JsonField? = null + private var invoiceSettings: JsonField? = null + private var perUnitCostBasis: JsonField? = null + private var threshold: JsonField? = null + private var activeFrom: JsonField = JsonMissing.of() + private var expiresAfter: JsonField = JsonMissing.of() + private var expiresAfterUnit: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + amount = body.amount + currency = body.currency + invoiceSettings = body.invoiceSettings + perUnitCostBasis = body.perUnitCostBasis + threshold = body.threshold + activeFrom = body.activeFrom + expiresAfter = body.expiresAfter + expiresAfterUnit = body.expiresAfterUnit + additionalProperties = body.additionalProperties.toMutableMap() } - fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + /** The amount to increment when the threshold is reached. */ + fun amount(amount: String) = amount(JsonField.of(amount)) - fun removeAllAdditionalBodyProperties(keys: Set) = apply { - body.removeAllAdditionalProperties(keys) - } + /** + * Sets [Builder.amount] to an arbitrary JSON value. + * + * You should usually call [Builder.amount] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun amount(amount: JsonField) = apply { this.amount = amount } - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** + * The currency or custom pricing unit to use for this top-up. If this is a real-world + * currency, it must match the customer's invoicing currency. + */ + fun currency(currency: String) = currency(JsonField.of(currency)) + + /** + * Sets [Builder.currency] to an arbitrary JSON value. + * + * You should usually call [Builder.currency] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun currency(currency: JsonField) = apply { this.currency = currency } + + /** Settings for invoices generated by triggered top-ups. */ + fun invoiceSettings(invoiceSettings: InvoiceSettings) = + invoiceSettings(JsonField.of(invoiceSettings)) + + /** + * Sets [Builder.invoiceSettings] to an arbitrary JSON value. + * + * You should usually call [Builder.invoiceSettings] with a well-typed [InvoiceSettings] + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + fun invoiceSettings(invoiceSettings: JsonField) = apply { + this.invoiceSettings = invoiceSettings + } + + /** How much, in the customer's currency, to charge for each unit. */ + fun perUnitCostBasis(perUnitCostBasis: String) = + perUnitCostBasis(JsonField.of(perUnitCostBasis)) + + /** + * Sets [Builder.perUnitCostBasis] to an arbitrary JSON value. + * + * You should usually call [Builder.perUnitCostBasis] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun perUnitCostBasis(perUnitCostBasis: JsonField) = apply { + this.perUnitCostBasis = perUnitCostBasis + } + + /** + * The threshold at which to trigger the top-up. If the balance is at or below this + * threshold, the top-up will be triggered. + */ + fun threshold(threshold: String) = threshold(JsonField.of(threshold)) + + /** + * Sets [Builder.threshold] to an arbitrary JSON value. + * + * You should usually call [Builder.threshold] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun threshold(threshold: JsonField) = apply { this.threshold = threshold } - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** + * The date from which the top-up is active. If unspecified, the top-up is active + * immediately. + */ + fun activeFrom(activeFrom: OffsetDateTime?) = + activeFrom(JsonField.ofNullable(activeFrom)) - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } + /** Alias for calling [Builder.activeFrom] with `activeFrom.orElse(null)`. */ + fun activeFrom(activeFrom: Optional) = + activeFrom(activeFrom.getOrNull()) - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } + /** + * Sets [Builder.activeFrom] to an arbitrary JSON value. + * + * You should usually call [Builder.activeFrom] with a well-typed [OffsetDateTime] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun activeFrom(activeFrom: JsonField) = apply { + this.activeFrom = activeFrom + } - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** + * The number of days or months after which the top-up expires. If unspecified, it does + * not expire. + */ + fun expiresAfter(expiresAfter: Long?) = expiresAfter(JsonField.ofNullable(expiresAfter)) - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** + * Alias for [Builder.expiresAfter]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun expiresAfter(expiresAfter: Long) = expiresAfter(expiresAfter as Long?) - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } + /** Alias for calling [Builder.expiresAfter] with `expiresAfter.orElse(null)`. */ + fun expiresAfter(expiresAfter: Optional) = expiresAfter(expiresAfter.getOrNull()) - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } + /** + * Sets [Builder.expiresAfter] to an arbitrary JSON value. + * + * You should usually call [Builder.expiresAfter] with a well-typed [Long] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun expiresAfter(expiresAfter: JsonField) = apply { + this.expiresAfter = expiresAfter + } - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** The unit of expires_after. */ + fun expiresAfterUnit(expiresAfterUnit: ExpiresAfterUnit?) = + expiresAfterUnit(JsonField.ofNullable(expiresAfterUnit)) - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** + * Alias for calling [Builder.expiresAfterUnit] with `expiresAfterUnit.orElse(null)`. + */ + fun expiresAfterUnit(expiresAfterUnit: Optional) = + expiresAfterUnit(expiresAfterUnit.getOrNull()) - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + /** + * Sets [Builder.expiresAfterUnit] to an arbitrary JSON value. + * + * You should usually call [Builder.expiresAfterUnit] with a well-typed + * [ExpiresAfterUnit] value instead. This method is primarily for setting the field to + * an undocumented or not yet supported value. + */ + fun expiresAfterUnit(expiresAfterUnit: JsonField) = apply { + this.expiresAfterUnit = expiresAfterUnit + } - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) - } + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .amount() + * .currency() + * .invoiceSettings() + * .perUnitCostBasis() + * .threshold() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body( + checkRequired("amount", amount), + checkRequired("currency", currency), + checkRequired("invoiceSettings", invoiceSettings), + checkRequired("perUnitCostBasis", perUnitCostBasis), + checkRequired("threshold", threshold), + activeFrom, + expiresAfter, + expiresAfterUnit, + additionalProperties.toMutableMap(), + ) } - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) + private var validated: Boolean = false + + fun validate(): Body = apply { + if (validated) { + return@apply } - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) + amount() + currency() + invoiceSettings().validate() + perUnitCostBasis() + threshold() + activeFrom() + expiresAfter() + expiresAfterUnit() + validated = true } - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + return /* spotless:off */ other is Body && amount == other.amount && currency == other.currency && invoiceSettings == other.invoiceSettings && perUnitCostBasis == other.perUnitCostBasis && threshold == other.threshold && activeFrom == other.activeFrom && expiresAfter == other.expiresAfter && expiresAfterUnit == other.expiresAfterUnit && additionalProperties == other.additionalProperties /* spotless:on */ } - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(amount, currency, invoiceSettings, perUnitCostBasis, threshold, activeFrom, expiresAfter, expiresAfterUnit, additionalProperties) } + /* spotless:on */ - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) - } + override fun hashCode(): Int = hashCode - /** - * Returns an immutable instance of [CustomerCreditTopUpCreateByExternalIdParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .externalCustomerId() - * .amount() - * .currency() - * .invoiceSettings() - * .perUnitCostBasis() - * .threshold() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): CustomerCreditTopUpCreateByExternalIdParams = - CustomerCreditTopUpCreateByExternalIdParams( - checkRequired("externalCustomerId", externalCustomerId), - body.build(), - additionalHeaders.build(), - additionalQueryParams.build(), - ) + override fun toString() = + "Body{amount=$amount, currency=$currency, invoiceSettings=$invoiceSettings, perUnitCostBasis=$perUnitCostBasis, threshold=$threshold, activeFrom=$activeFrom, expiresAfter=$expiresAfter, expiresAfterUnit=$expiresAfterUnit, additionalProperties=$additionalProperties}" } /** Settings for invoices generated by triggered top-ups. */ - @NoAutoDetect class InvoiceSettings - @JsonCreator private constructor( - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("memo") - @ExcludeMissing - private val memo: JsonField = JsonMissing.of(), - @JsonProperty("require_successful_payment") - @ExcludeMissing - private val requireSuccessfulPayment: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val autoCollection: JsonField, + private val netTerms: JsonField, + private val memo: JsonField, + private val requireSuccessfulPayment: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("memo") @ExcludeMissing memo: JsonField = JsonMissing.of(), + @JsonProperty("require_successful_payment") + @ExcludeMissing + requireSuccessfulPayment: JsonField = JsonMissing.of(), + ) : this(autoCollection, netTerms, memo, requireSuccessfulPayment, mutableMapOf()) + /** * Whether the credits purchase invoice should auto collect with the customer's saved * payment method. @@ -1051,23 +1072,15 @@ private constructor( @ExcludeMissing fun _requireSuccessfulPayment(): JsonField = requireSuccessfulPayment + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoiceSettings = apply { - if (validated) { - return@apply - } - - autoCollection() - netTerms() - memo() - requireSuccessfulPayment() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1207,10 +1220,24 @@ private constructor( checkRequired("netTerms", netTerms), memo, requireSuccessfulPayment, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoiceSettings = apply { + if (validated) { + return@apply + } + + autoCollection() + netTerms() + memo() + requireSuccessfulPayment() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateByExternalIdResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateByExternalIdResponse.kt index 20beb08a..0c7f139d 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateByExternalIdResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateByExternalIdResponse.kt @@ -11,44 +11,56 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class CustomerCreditTopUpCreateByExternalIdResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("invoice_settings") - @ExcludeMissing - private val invoiceSettings: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonProperty("threshold") - @ExcludeMissing - private val threshold: JsonField = JsonMissing.of(), - @JsonProperty("expires_after") - @ExcludeMissing - private val expiresAfter: JsonField = JsonMissing.of(), - @JsonProperty("expires_after_unit") - @ExcludeMissing - private val expiresAfterUnit: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val currency: JsonField, + private val invoiceSettings: JsonField, + private val perUnitCostBasis: JsonField, + private val threshold: JsonField, + private val expiresAfter: JsonField, + private val expiresAfterUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("currency") @ExcludeMissing currency: JsonField = JsonMissing.of(), + @JsonProperty("invoice_settings") + @ExcludeMissing + invoiceSettings: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + @JsonProperty("threshold") @ExcludeMissing threshold: JsonField = JsonMissing.of(), + @JsonProperty("expires_after") + @ExcludeMissing + expiresAfter: JsonField = JsonMissing.of(), + @JsonProperty("expires_after_unit") + @ExcludeMissing + expiresAfterUnit: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + currency, + invoiceSettings, + perUnitCostBasis, + threshold, + expiresAfter, + expiresAfterUnit, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -182,27 +194,15 @@ private constructor( @ExcludeMissing fun _expiresAfterUnit(): JsonField = expiresAfterUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CustomerCreditTopUpCreateByExternalIdResponse = apply { - if (validated) { - return@apply - } - - id() - amount() - currency() - invoiceSettings().validate() - perUnitCostBasis() - threshold() - expiresAfter() - expiresAfterUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -425,31 +425,50 @@ private constructor( checkRequired("threshold", threshold), expiresAfter, expiresAfterUnit, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CustomerCreditTopUpCreateByExternalIdResponse = apply { + if (validated) { + return@apply + } + + id() + amount() + currency() + invoiceSettings().validate() + perUnitCostBasis() + threshold() + expiresAfter() + expiresAfterUnit() + validated = true + } + /** Settings for invoices generated by triggered top-ups. */ - @NoAutoDetect class InvoiceSettings - @JsonCreator private constructor( - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("memo") - @ExcludeMissing - private val memo: JsonField = JsonMissing.of(), - @JsonProperty("require_successful_payment") - @ExcludeMissing - private val requireSuccessfulPayment: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val autoCollection: JsonField, + private val netTerms: JsonField, + private val memo: JsonField, + private val requireSuccessfulPayment: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("memo") @ExcludeMissing memo: JsonField = JsonMissing.of(), + @JsonProperty("require_successful_payment") + @ExcludeMissing + requireSuccessfulPayment: JsonField = JsonMissing.of(), + ) : this(autoCollection, netTerms, memo, requireSuccessfulPayment, mutableMapOf()) + /** * Whether the credits purchase invoice should auto collect with the customer's saved * payment method. @@ -520,23 +539,15 @@ private constructor( @ExcludeMissing fun _requireSuccessfulPayment(): JsonField = requireSuccessfulPayment + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoiceSettings = apply { - if (validated) { - return@apply - } - - autoCollection() - netTerms() - memo() - requireSuccessfulPayment() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -676,10 +687,24 @@ private constructor( checkRequired("netTerms", netTerms), memo, requireSuccessfulPayment, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoiceSettings = apply { + if (validated) { + return@apply + } + + autoCollection() + netTerms() + memo() + requireSuccessfulPayment() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateParams.kt index 9f3e4665..59a9d5db 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateParams.kt @@ -11,15 +11,13 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -173,474 +171,305 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body + fun toBuilder() = Builder().from(this) - fun _pathParam(index: Int): String = - when (index) { - 0 -> customerId - else -> "" - } + companion object { - override fun _headers(): Headers = additionalHeaders + /** + * Returns a mutable builder for constructing an instance of + * [CustomerCreditTopUpCreateParams]. + * + * The following fields are required: + * ```java + * .customerId() + * .amount() + * .currency() + * .invoiceSettings() + * .perUnitCostBasis() + * .threshold() + * ``` + */ + @JvmStatic fun builder() = Builder() + } - override fun _queryParams(): QueryParams = additionalQueryParams + /** A builder for [CustomerCreditTopUpCreateParams]. */ + class Builder internal constructor() { - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("invoice_settings") - @ExcludeMissing - private val invoiceSettings: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonProperty("threshold") - @ExcludeMissing - private val threshold: JsonField = JsonMissing.of(), - @JsonProperty("active_from") - @ExcludeMissing - private val activeFrom: JsonField = JsonMissing.of(), - @JsonProperty("expires_after") - @ExcludeMissing - private val expiresAfter: JsonField = JsonMissing.of(), - @JsonProperty("expires_after_unit") - @ExcludeMissing - private val expiresAfterUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { + private var customerId: String? = null + private var body: Body.Builder = Body.builder() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from(customerCreditTopUpCreateParams: CustomerCreditTopUpCreateParams) = + apply { + customerId = customerCreditTopUpCreateParams.customerId + body = customerCreditTopUpCreateParams.body.toBuilder() + additionalHeaders = customerCreditTopUpCreateParams.additionalHeaders.toBuilder() + additionalQueryParams = + customerCreditTopUpCreateParams.additionalQueryParams.toBuilder() + } + + fun customerId(customerId: String) = apply { this.customerId = customerId } + + /** The amount to increment when the threshold is reached. */ + fun amount(amount: String) = apply { body.amount(amount) } /** - * The amount to increment when the threshold is reached. + * Sets [Builder.amount] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * You should usually call [Builder.amount] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - fun amount(): String = amount.getRequired("amount") + fun amount(amount: JsonField) = apply { body.amount(amount) } /** * The currency or custom pricing unit to use for this top-up. If this is a real-world * currency, it must match the customer's invoicing currency. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun currency(): String = currency.getRequired("currency") + fun currency(currency: String) = apply { body.currency(currency) } /** - * Settings for invoices generated by triggered top-ups. + * Sets [Builder.currency] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * You should usually call [Builder.currency] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - fun invoiceSettings(): InvoiceSettings = invoiceSettings.getRequired("invoice_settings") + fun currency(currency: JsonField) = apply { body.currency(currency) } - /** - * How much, in the customer's currency, to charge for each unit. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun perUnitCostBasis(): String = perUnitCostBasis.getRequired("per_unit_cost_basis") + /** Settings for invoices generated by triggered top-ups. */ + fun invoiceSettings(invoiceSettings: InvoiceSettings) = apply { + body.invoiceSettings(invoiceSettings) + } /** - * The threshold at which to trigger the top-up. If the balance is at or below this - * threshold, the top-up will be triggered. + * Sets [Builder.invoiceSettings] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * You should usually call [Builder.invoiceSettings] with a well-typed [InvoiceSettings] + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. */ - fun threshold(): String = threshold.getRequired("threshold") + fun invoiceSettings(invoiceSettings: JsonField) = apply { + body.invoiceSettings(invoiceSettings) + } - /** - * The date from which the top-up is active. If unspecified, the top-up is active - * immediately. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun activeFrom(): Optional = - Optional.ofNullable(activeFrom.getNullable("active_from")) + /** How much, in the customer's currency, to charge for each unit. */ + fun perUnitCostBasis(perUnitCostBasis: String) = apply { + body.perUnitCostBasis(perUnitCostBasis) + } /** - * The number of days or months after which the top-up expires. If unspecified, it does not - * expire. + * Sets [Builder.perUnitCostBasis] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.perUnitCostBasis] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun expiresAfter(): Optional = - Optional.ofNullable(expiresAfter.getNullable("expires_after")) + fun perUnitCostBasis(perUnitCostBasis: JsonField) = apply { + body.perUnitCostBasis(perUnitCostBasis) + } /** - * The unit of expires_after. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * The threshold at which to trigger the top-up. If the balance is at or below this + * threshold, the top-up will be triggered. */ - fun expiresAfterUnit(): Optional = - Optional.ofNullable(expiresAfterUnit.getNullable("expires_after_unit")) + fun threshold(threshold: String) = apply { body.threshold(threshold) } /** - * Returns the raw JSON value of [amount]. + * Sets [Builder.threshold] to an arbitrary JSON value. * - * Unlike [amount], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.threshold] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. */ - @JsonProperty("amount") @ExcludeMissing fun _amount(): JsonField = amount + fun threshold(threshold: JsonField) = apply { body.threshold(threshold) } /** - * Returns the raw JSON value of [currency]. - * - * Unlike [currency], this method doesn't throw if the JSON field has an unexpected type. + * The date from which the top-up is active. If unspecified, the top-up is active + * immediately. */ - @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + fun activeFrom(activeFrom: OffsetDateTime?) = apply { body.activeFrom(activeFrom) } - /** - * Returns the raw JSON value of [invoiceSettings]. - * - * Unlike [invoiceSettings], this method doesn't throw if the JSON field has an unexpected - * type. - */ - @JsonProperty("invoice_settings") - @ExcludeMissing - fun _invoiceSettings(): JsonField = invoiceSettings + /** Alias for calling [Builder.activeFrom] with `activeFrom.orElse(null)`. */ + fun activeFrom(activeFrom: Optional) = activeFrom(activeFrom.getOrNull()) /** - * Returns the raw JSON value of [perUnitCostBasis]. + * Sets [Builder.activeFrom] to an arbitrary JSON value. * - * Unlike [perUnitCostBasis], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.activeFrom] with a well-typed [OffsetDateTime] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - fun _perUnitCostBasis(): JsonField = perUnitCostBasis + fun activeFrom(activeFrom: JsonField) = apply { + body.activeFrom(activeFrom) + } /** - * Returns the raw JSON value of [threshold]. - * - * Unlike [threshold], this method doesn't throw if the JSON field has an unexpected type. + * The number of days or months after which the top-up expires. If unspecified, it does not + * expire. */ - @JsonProperty("threshold") @ExcludeMissing fun _threshold(): JsonField = threshold + fun expiresAfter(expiresAfter: Long?) = apply { body.expiresAfter(expiresAfter) } /** - * Returns the raw JSON value of [activeFrom]. + * Alias for [Builder.expiresAfter]. * - * Unlike [activeFrom], this method doesn't throw if the JSON field has an unexpected type. + * This unboxed primitive overload exists for backwards compatibility. */ - @JsonProperty("active_from") - @ExcludeMissing - fun _activeFrom(): JsonField = activeFrom + fun expiresAfter(expiresAfter: Long) = expiresAfter(expiresAfter as Long?) + + /** Alias for calling [Builder.expiresAfter] with `expiresAfter.orElse(null)`. */ + fun expiresAfter(expiresAfter: Optional) = expiresAfter(expiresAfter.getOrNull()) /** - * Returns the raw JSON value of [expiresAfter]. + * Sets [Builder.expiresAfter] to an arbitrary JSON value. * - * Unlike [expiresAfter], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.expiresAfter] with a well-typed [Long] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. */ - @JsonProperty("expires_after") - @ExcludeMissing - fun _expiresAfter(): JsonField = expiresAfter + fun expiresAfter(expiresAfter: JsonField) = apply { body.expiresAfter(expiresAfter) } + + /** The unit of expires_after. */ + fun expiresAfterUnit(expiresAfterUnit: ExpiresAfterUnit?) = apply { + body.expiresAfterUnit(expiresAfterUnit) + } + + /** Alias for calling [Builder.expiresAfterUnit] with `expiresAfterUnit.orElse(null)`. */ + fun expiresAfterUnit(expiresAfterUnit: Optional) = + expiresAfterUnit(expiresAfterUnit.getOrNull()) /** - * Returns the raw JSON value of [expiresAfterUnit]. + * Sets [Builder.expiresAfterUnit] to an arbitrary JSON value. * - * Unlike [expiresAfterUnit], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.expiresAfterUnit] with a well-typed [ExpiresAfterUnit] + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. */ - @JsonProperty("expires_after_unit") - @ExcludeMissing - fun _expiresAfterUnit(): JsonField = expiresAfterUnit + fun expiresAfterUnit(expiresAfterUnit: JsonField) = apply { + body.expiresAfterUnit(expiresAfterUnit) + } - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun additionalBodyProperties(additionalBodyProperties: Map) = apply { + body.additionalProperties(additionalBodyProperties) + } - private var validated: Boolean = false + fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { + body.putAdditionalProperty(key, value) + } - fun validate(): Body = apply { - if (validated) { - return@apply + fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = + apply { + body.putAllAdditionalProperties(additionalBodyProperties) } - amount() - currency() - invoiceSettings().validate() - perUnitCostBasis() - threshold() - activeFrom() - expiresAfter() - expiresAfterUnit() - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { + fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .amount() - * .currency() - * .invoiceSettings() - * .perUnitCostBasis() - * .threshold() - * ``` - */ - @JvmStatic fun builder() = Builder() + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + body.removeAllAdditionalProperties(keys) } - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var amount: JsonField? = null - private var currency: JsonField? = null - private var invoiceSettings: JsonField? = null - private var perUnitCostBasis: JsonField? = null - private var threshold: JsonField? = null - private var activeFrom: JsonField = JsonMissing.of() - private var expiresAfter: JsonField = JsonMissing.of() - private var expiresAfterUnit: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - amount = body.amount - currency = body.currency - invoiceSettings = body.invoiceSettings - perUnitCostBasis = body.perUnitCostBasis - threshold = body.threshold - activeFrom = body.activeFrom - expiresAfter = body.expiresAfter - expiresAfterUnit = body.expiresAfterUnit - additionalProperties = body.additionalProperties.toMutableMap() - } - - /** The amount to increment when the threshold is reached. */ - fun amount(amount: String) = amount(JsonField.of(amount)) - - /** - * Sets [Builder.amount] to an arbitrary JSON value. - * - * You should usually call [Builder.amount] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun amount(amount: JsonField) = apply { this.amount = amount } - - /** - * The currency or custom pricing unit to use for this top-up. If this is a real-world - * currency, it must match the customer's invoicing currency. - */ - fun currency(currency: String) = currency(JsonField.of(currency)) - - /** - * Sets [Builder.currency] to an arbitrary JSON value. - * - * You should usually call [Builder.currency] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun currency(currency: JsonField) = apply { this.currency = currency } - - /** Settings for invoices generated by triggered top-ups. */ - fun invoiceSettings(invoiceSettings: InvoiceSettings) = - invoiceSettings(JsonField.of(invoiceSettings)) - - /** - * Sets [Builder.invoiceSettings] to an arbitrary JSON value. - * - * You should usually call [Builder.invoiceSettings] with a well-typed [InvoiceSettings] - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - fun invoiceSettings(invoiceSettings: JsonField) = apply { - this.invoiceSettings = invoiceSettings - } - - /** How much, in the customer's currency, to charge for each unit. */ - fun perUnitCostBasis(perUnitCostBasis: String) = - perUnitCostBasis(JsonField.of(perUnitCostBasis)) - - /** - * Sets [Builder.perUnitCostBasis] to an arbitrary JSON value. - * - * You should usually call [Builder.perUnitCostBasis] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun perUnitCostBasis(perUnitCostBasis: JsonField) = apply { - this.perUnitCostBasis = perUnitCostBasis - } - - /** - * The threshold at which to trigger the top-up. If the balance is at or below this - * threshold, the top-up will be triggered. - */ - fun threshold(threshold: String) = threshold(JsonField.of(threshold)) - - /** - * Sets [Builder.threshold] to an arbitrary JSON value. - * - * You should usually call [Builder.threshold] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun threshold(threshold: JsonField) = apply { this.threshold = threshold } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - /** - * The date from which the top-up is active. If unspecified, the top-up is active - * immediately. - */ - fun activeFrom(activeFrom: OffsetDateTime?) = - activeFrom(JsonField.ofNullable(activeFrom)) + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - /** Alias for calling [Builder.activeFrom] with `activeFrom.orElse(null)`. */ - fun activeFrom(activeFrom: Optional) = - activeFrom(activeFrom.getOrNull()) + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) + } - /** - * Sets [Builder.activeFrom] to an arbitrary JSON value. - * - * You should usually call [Builder.activeFrom] with a well-typed [OffsetDateTime] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun activeFrom(activeFrom: JsonField) = apply { - this.activeFrom = activeFrom - } + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } - /** - * The number of days or months after which the top-up expires. If unspecified, it does - * not expire. - */ - fun expiresAfter(expiresAfter: Long?) = expiresAfter(JsonField.ofNullable(expiresAfter)) + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - /** - * Alias for [Builder.expiresAfter]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun expiresAfter(expiresAfter: Long) = expiresAfter(expiresAfter as Long?) + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - /** Alias for calling [Builder.expiresAfter] with `expiresAfter.orElse(null)`. */ - fun expiresAfter(expiresAfter: Optional) = expiresAfter(expiresAfter.getOrNull()) + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } - /** - * Sets [Builder.expiresAfter] to an arbitrary JSON value. - * - * You should usually call [Builder.expiresAfter] with a well-typed [Long] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun expiresAfter(expiresAfter: JsonField) = apply { - this.expiresAfter = expiresAfter - } + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } - /** The unit of expires_after. */ - fun expiresAfterUnit(expiresAfterUnit: ExpiresAfterUnit?) = - expiresAfterUnit(JsonField.ofNullable(expiresAfterUnit)) + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** - * Alias for calling [Builder.expiresAfterUnit] with `expiresAfterUnit.orElse(null)`. - */ - fun expiresAfterUnit(expiresAfterUnit: Optional) = - expiresAfterUnit(expiresAfterUnit.getOrNull()) + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** - * Sets [Builder.expiresAfterUnit] to an arbitrary JSON value. - * - * You should usually call [Builder.expiresAfterUnit] with a well-typed - * [ExpiresAfterUnit] value instead. This method is primarily for setting the field to - * an undocumented or not yet supported value. - */ - fun expiresAfterUnit(expiresAfterUnit: JsonField) = apply { - this.expiresAfterUnit = expiresAfterUnit - } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .amount() - * .currency() - * .invoiceSettings() - * .perUnitCostBasis() - * .threshold() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body( - checkRequired("amount", amount), - checkRequired("currency", currency), - checkRequired("invoiceSettings", invoiceSettings), - checkRequired("perUnitCostBasis", perUnitCostBasis), - checkRequired("threshold", threshold), - activeFrom, - expiresAfter, - expiresAfterUnit, - additionalProperties.toImmutable(), - ) + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } - override fun equals(other: Any?): Boolean { - if (this === other) { - return true + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) } - return /* spotless:off */ other is Body && amount == other.amount && currency == other.currency && invoiceSettings == other.invoiceSettings && perUnitCostBasis == other.perUnitCostBasis && threshold == other.threshold && activeFrom == other.activeFrom && expiresAfter == other.expiresAfter && expiresAfterUnit == other.expiresAfterUnit && additionalProperties == other.additionalProperties /* spotless:on */ + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) } - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(amount, currency, invoiceSettings, perUnitCostBasis, threshold, activeFrom, expiresAfter, expiresAfterUnit, additionalProperties) } - /* spotless:on */ + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } - override fun hashCode(): Int = hashCode + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - override fun toString() = - "Body{amount=$amount, currency=$currency, invoiceSettings=$invoiceSettings, perUnitCostBasis=$perUnitCostBasis, threshold=$threshold, activeFrom=$activeFrom, expiresAfter=$expiresAfter, expiresAfterUnit=$expiresAfterUnit, additionalProperties=$additionalProperties}" - } + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - fun toBuilder() = Builder().from(this) + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } - companion object { + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } /** - * Returns a mutable builder for constructing an instance of - * [CustomerCreditTopUpCreateParams]. + * Returns an immutable instance of [CustomerCreditTopUpCreateParams]. + * + * Further updates to this [Builder] will not mutate the returned instance. * * The following fields are required: * ```java @@ -651,332 +480,524 @@ private constructor( * .perUnitCostBasis() * .threshold() * ``` + * + * @throws IllegalStateException if any required field is unset. */ - @JvmStatic fun builder() = Builder() + fun build(): CustomerCreditTopUpCreateParams = + CustomerCreditTopUpCreateParams( + checkRequired("customerId", customerId), + body.build(), + additionalHeaders.build(), + additionalQueryParams.build(), + ) } - /** A builder for [CustomerCreditTopUpCreateParams]. */ - @NoAutoDetect - class Builder internal constructor() { + @JvmSynthetic internal fun _body(): Body = body - private var customerId: String? = null - private var body: Body.Builder = Body.builder() - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + fun _pathParam(index: Int): String = + when (index) { + 0 -> customerId + else -> "" + } - @JvmSynthetic - internal fun from(customerCreditTopUpCreateParams: CustomerCreditTopUpCreateParams) = - apply { - customerId = customerCreditTopUpCreateParams.customerId - body = customerCreditTopUpCreateParams.body.toBuilder() - additionalHeaders = customerCreditTopUpCreateParams.additionalHeaders.toBuilder() - additionalQueryParams = - customerCreditTopUpCreateParams.additionalQueryParams.toBuilder() - } + override fun _headers(): Headers = additionalHeaders - fun customerId(customerId: String) = apply { this.customerId = customerId } + override fun _queryParams(): QueryParams = additionalQueryParams - /** The amount to increment when the threshold is reached. */ - fun amount(amount: String) = apply { body.amount(amount) } + class Body + private constructor( + private val amount: JsonField, + private val currency: JsonField, + private val invoiceSettings: JsonField, + private val perUnitCostBasis: JsonField, + private val threshold: JsonField, + private val activeFrom: JsonField, + private val expiresAfter: JsonField, + private val expiresAfterUnit: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("invoice_settings") + @ExcludeMissing + invoiceSettings: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + @JsonProperty("threshold") + @ExcludeMissing + threshold: JsonField = JsonMissing.of(), + @JsonProperty("active_from") + @ExcludeMissing + activeFrom: JsonField = JsonMissing.of(), + @JsonProperty("expires_after") + @ExcludeMissing + expiresAfter: JsonField = JsonMissing.of(), + @JsonProperty("expires_after_unit") + @ExcludeMissing + expiresAfterUnit: JsonField = JsonMissing.of(), + ) : this( + amount, + currency, + invoiceSettings, + perUnitCostBasis, + threshold, + activeFrom, + expiresAfter, + expiresAfterUnit, + mutableMapOf(), + ) /** - * Sets [Builder.amount] to an arbitrary JSON value. + * The amount to increment when the threshold is reached. * - * You should usually call [Builder.amount] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun amount(amount: JsonField) = apply { body.amount(amount) } + fun amount(): String = amount.getRequired("amount") /** * The currency or custom pricing unit to use for this top-up. If this is a real-world * currency, it must match the customer's invoicing currency. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun currency(currency: String) = apply { body.currency(currency) } + fun currency(): String = currency.getRequired("currency") /** - * Sets [Builder.currency] to an arbitrary JSON value. + * Settings for invoices generated by triggered top-ups. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun invoiceSettings(): InvoiceSettings = invoiceSettings.getRequired("invoice_settings") + + /** + * How much, in the customer's currency, to charge for each unit. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun perUnitCostBasis(): String = perUnitCostBasis.getRequired("per_unit_cost_basis") + + /** + * The threshold at which to trigger the top-up. If the balance is at or below this + * threshold, the top-up will be triggered. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun threshold(): String = threshold.getRequired("threshold") + + /** + * The date from which the top-up is active. If unspecified, the top-up is active + * immediately. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun activeFrom(): Optional = + Optional.ofNullable(activeFrom.getNullable("active_from")) + + /** + * The number of days or months after which the top-up expires. If unspecified, it does not + * expire. * - * You should usually call [Builder.currency] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun currency(currency: JsonField) = apply { body.currency(currency) } - - /** Settings for invoices generated by triggered top-ups. */ - fun invoiceSettings(invoiceSettings: InvoiceSettings) = apply { - body.invoiceSettings(invoiceSettings) - } + fun expiresAfter(): Optional = + Optional.ofNullable(expiresAfter.getNullable("expires_after")) /** - * Sets [Builder.invoiceSettings] to an arbitrary JSON value. + * The unit of expires_after. * - * You should usually call [Builder.invoiceSettings] with a well-typed [InvoiceSettings] - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun invoiceSettings(invoiceSettings: JsonField) = apply { - body.invoiceSettings(invoiceSettings) - } - - /** How much, in the customer's currency, to charge for each unit. */ - fun perUnitCostBasis(perUnitCostBasis: String) = apply { - body.perUnitCostBasis(perUnitCostBasis) - } + fun expiresAfterUnit(): Optional = + Optional.ofNullable(expiresAfterUnit.getNullable("expires_after_unit")) /** - * Sets [Builder.perUnitCostBasis] to an arbitrary JSON value. + * Returns the raw JSON value of [amount]. * - * You should usually call [Builder.perUnitCostBasis] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [amount], this method doesn't throw if the JSON field has an unexpected type. */ - fun perUnitCostBasis(perUnitCostBasis: JsonField) = apply { - body.perUnitCostBasis(perUnitCostBasis) - } + @JsonProperty("amount") @ExcludeMissing fun _amount(): JsonField = amount /** - * The threshold at which to trigger the top-up. If the balance is at or below this - * threshold, the top-up will be triggered. + * Returns the raw JSON value of [currency]. + * + * Unlike [currency], this method doesn't throw if the JSON field has an unexpected type. */ - fun threshold(threshold: String) = apply { body.threshold(threshold) } + @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency /** - * Sets [Builder.threshold] to an arbitrary JSON value. + * Returns the raw JSON value of [invoiceSettings]. * - * You should usually call [Builder.threshold] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. + * Unlike [invoiceSettings], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun threshold(threshold: JsonField) = apply { body.threshold(threshold) } + @JsonProperty("invoice_settings") + @ExcludeMissing + fun _invoiceSettings(): JsonField = invoiceSettings /** - * The date from which the top-up is active. If unspecified, the top-up is active - * immediately. + * Returns the raw JSON value of [perUnitCostBasis]. + * + * Unlike [perUnitCostBasis], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun activeFrom(activeFrom: OffsetDateTime?) = apply { body.activeFrom(activeFrom) } - - /** Alias for calling [Builder.activeFrom] with `activeFrom.orElse(null)`. */ - fun activeFrom(activeFrom: Optional) = activeFrom(activeFrom.getOrNull()) + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + fun _perUnitCostBasis(): JsonField = perUnitCostBasis /** - * Sets [Builder.activeFrom] to an arbitrary JSON value. + * Returns the raw JSON value of [threshold]. * - * You should usually call [Builder.activeFrom] with a well-typed [OffsetDateTime] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [threshold], this method doesn't throw if the JSON field has an unexpected type. */ - fun activeFrom(activeFrom: JsonField) = apply { - body.activeFrom(activeFrom) - } + @JsonProperty("threshold") @ExcludeMissing fun _threshold(): JsonField = threshold /** - * The number of days or months after which the top-up expires. If unspecified, it does not - * expire. + * Returns the raw JSON value of [activeFrom]. + * + * Unlike [activeFrom], this method doesn't throw if the JSON field has an unexpected type. */ - fun expiresAfter(expiresAfter: Long?) = apply { body.expiresAfter(expiresAfter) } + @JsonProperty("active_from") + @ExcludeMissing + fun _activeFrom(): JsonField = activeFrom /** - * Alias for [Builder.expiresAfter]. + * Returns the raw JSON value of [expiresAfter]. * - * This unboxed primitive overload exists for backwards compatibility. + * Unlike [expiresAfter], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun expiresAfter(expiresAfter: Long) = expiresAfter(expiresAfter as Long?) - - /** Alias for calling [Builder.expiresAfter] with `expiresAfter.orElse(null)`. */ - fun expiresAfter(expiresAfter: Optional) = expiresAfter(expiresAfter.getOrNull()) + @JsonProperty("expires_after") + @ExcludeMissing + fun _expiresAfter(): JsonField = expiresAfter /** - * Sets [Builder.expiresAfter] to an arbitrary JSON value. + * Returns the raw JSON value of [expiresAfterUnit]. * - * You should usually call [Builder.expiresAfter] with a well-typed [Long] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. + * Unlike [expiresAfterUnit], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun expiresAfter(expiresAfter: JsonField) = apply { body.expiresAfter(expiresAfter) } + @JsonProperty("expires_after_unit") + @ExcludeMissing + fun _expiresAfterUnit(): JsonField = expiresAfterUnit - /** The unit of expires_after. */ - fun expiresAfterUnit(expiresAfterUnit: ExpiresAfterUnit?) = apply { - body.expiresAfterUnit(expiresAfterUnit) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } - /** Alias for calling [Builder.expiresAfterUnit] with `expiresAfterUnit.orElse(null)`. */ - fun expiresAfterUnit(expiresAfterUnit: Optional) = - expiresAfterUnit(expiresAfterUnit.getOrNull()) + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) - /** - * Sets [Builder.expiresAfterUnit] to an arbitrary JSON value. - * - * You should usually call [Builder.expiresAfterUnit] with a well-typed [ExpiresAfterUnit] - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun expiresAfterUnit(expiresAfterUnit: JsonField) = apply { - body.expiresAfterUnit(expiresAfterUnit) - } + fun toBuilder() = Builder().from(this) - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { - body.additionalProperties(additionalBodyProperties) - } + companion object { - fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - body.putAdditionalProperty(key, value) + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .amount() + * .currency() + * .invoiceSettings() + * .perUnitCostBasis() + * .threshold() + * ``` + */ + @JvmStatic fun builder() = Builder() } - fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = - apply { - body.putAllAdditionalProperties(additionalBodyProperties) + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var amount: JsonField? = null + private var currency: JsonField? = null + private var invoiceSettings: JsonField? = null + private var perUnitCostBasis: JsonField? = null + private var threshold: JsonField? = null + private var activeFrom: JsonField = JsonMissing.of() + private var expiresAfter: JsonField = JsonMissing.of() + private var expiresAfterUnit: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + amount = body.amount + currency = body.currency + invoiceSettings = body.invoiceSettings + perUnitCostBasis = body.perUnitCostBasis + threshold = body.threshold + activeFrom = body.activeFrom + expiresAfter = body.expiresAfter + expiresAfterUnit = body.expiresAfterUnit + additionalProperties = body.additionalProperties.toMutableMap() } - fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + /** The amount to increment when the threshold is reached. */ + fun amount(amount: String) = amount(JsonField.of(amount)) - fun removeAllAdditionalBodyProperties(keys: Set) = apply { - body.removeAllAdditionalProperties(keys) - } + /** + * Sets [Builder.amount] to an arbitrary JSON value. + * + * You should usually call [Builder.amount] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun amount(amount: JsonField) = apply { this.amount = amount } - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** + * The currency or custom pricing unit to use for this top-up. If this is a real-world + * currency, it must match the customer's invoicing currency. + */ + fun currency(currency: String) = currency(JsonField.of(currency)) + + /** + * Sets [Builder.currency] to an arbitrary JSON value. + * + * You should usually call [Builder.currency] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun currency(currency: JsonField) = apply { this.currency = currency } + + /** Settings for invoices generated by triggered top-ups. */ + fun invoiceSettings(invoiceSettings: InvoiceSettings) = + invoiceSettings(JsonField.of(invoiceSettings)) + + /** + * Sets [Builder.invoiceSettings] to an arbitrary JSON value. + * + * You should usually call [Builder.invoiceSettings] with a well-typed [InvoiceSettings] + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + fun invoiceSettings(invoiceSettings: JsonField) = apply { + this.invoiceSettings = invoiceSettings + } + + /** How much, in the customer's currency, to charge for each unit. */ + fun perUnitCostBasis(perUnitCostBasis: String) = + perUnitCostBasis(JsonField.of(perUnitCostBasis)) + + /** + * Sets [Builder.perUnitCostBasis] to an arbitrary JSON value. + * + * You should usually call [Builder.perUnitCostBasis] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun perUnitCostBasis(perUnitCostBasis: JsonField) = apply { + this.perUnitCostBasis = perUnitCostBasis + } + + /** + * The threshold at which to trigger the top-up. If the balance is at or below this + * threshold, the top-up will be triggered. + */ + fun threshold(threshold: String) = threshold(JsonField.of(threshold)) + + /** + * Sets [Builder.threshold] to an arbitrary JSON value. + * + * You should usually call [Builder.threshold] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun threshold(threshold: JsonField) = apply { this.threshold = threshold } - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** + * The date from which the top-up is active. If unspecified, the top-up is active + * immediately. + */ + fun activeFrom(activeFrom: OffsetDateTime?) = + activeFrom(JsonField.ofNullable(activeFrom)) - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } + /** Alias for calling [Builder.activeFrom] with `activeFrom.orElse(null)`. */ + fun activeFrom(activeFrom: Optional) = + activeFrom(activeFrom.getOrNull()) - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } + /** + * Sets [Builder.activeFrom] to an arbitrary JSON value. + * + * You should usually call [Builder.activeFrom] with a well-typed [OffsetDateTime] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun activeFrom(activeFrom: JsonField) = apply { + this.activeFrom = activeFrom + } - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** + * The number of days or months after which the top-up expires. If unspecified, it does + * not expire. + */ + fun expiresAfter(expiresAfter: Long?) = expiresAfter(JsonField.ofNullable(expiresAfter)) - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** + * Alias for [Builder.expiresAfter]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun expiresAfter(expiresAfter: Long) = expiresAfter(expiresAfter as Long?) - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } + /** Alias for calling [Builder.expiresAfter] with `expiresAfter.orElse(null)`. */ + fun expiresAfter(expiresAfter: Optional) = expiresAfter(expiresAfter.getOrNull()) - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } + /** + * Sets [Builder.expiresAfter] to an arbitrary JSON value. + * + * You should usually call [Builder.expiresAfter] with a well-typed [Long] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun expiresAfter(expiresAfter: JsonField) = apply { + this.expiresAfter = expiresAfter + } - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** The unit of expires_after. */ + fun expiresAfterUnit(expiresAfterUnit: ExpiresAfterUnit?) = + expiresAfterUnit(JsonField.ofNullable(expiresAfterUnit)) - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** + * Alias for calling [Builder.expiresAfterUnit] with `expiresAfterUnit.orElse(null)`. + */ + fun expiresAfterUnit(expiresAfterUnit: Optional) = + expiresAfterUnit(expiresAfterUnit.getOrNull()) - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + /** + * Sets [Builder.expiresAfterUnit] to an arbitrary JSON value. + * + * You should usually call [Builder.expiresAfterUnit] with a well-typed + * [ExpiresAfterUnit] value instead. This method is primarily for setting the field to + * an undocumented or not yet supported value. + */ + fun expiresAfterUnit(expiresAfterUnit: JsonField) = apply { + this.expiresAfterUnit = expiresAfterUnit + } - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) - } + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .amount() + * .currency() + * .invoiceSettings() + * .perUnitCostBasis() + * .threshold() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body( + checkRequired("amount", amount), + checkRequired("currency", currency), + checkRequired("invoiceSettings", invoiceSettings), + checkRequired("perUnitCostBasis", perUnitCostBasis), + checkRequired("threshold", threshold), + activeFrom, + expiresAfter, + expiresAfterUnit, + additionalProperties.toMutableMap(), + ) } - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) + private var validated: Boolean = false + + fun validate(): Body = apply { + if (validated) { + return@apply } - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) + amount() + currency() + invoiceSettings().validate() + perUnitCostBasis() + threshold() + activeFrom() + expiresAfter() + expiresAfterUnit() + validated = true } - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + return /* spotless:off */ other is Body && amount == other.amount && currency == other.currency && invoiceSettings == other.invoiceSettings && perUnitCostBasis == other.perUnitCostBasis && threshold == other.threshold && activeFrom == other.activeFrom && expiresAfter == other.expiresAfter && expiresAfterUnit == other.expiresAfterUnit && additionalProperties == other.additionalProperties /* spotless:on */ } - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(amount, currency, invoiceSettings, perUnitCostBasis, threshold, activeFrom, expiresAfter, expiresAfterUnit, additionalProperties) } + /* spotless:on */ - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) - } + override fun hashCode(): Int = hashCode - /** - * Returns an immutable instance of [CustomerCreditTopUpCreateParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .customerId() - * .amount() - * .currency() - * .invoiceSettings() - * .perUnitCostBasis() - * .threshold() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): CustomerCreditTopUpCreateParams = - CustomerCreditTopUpCreateParams( - checkRequired("customerId", customerId), - body.build(), - additionalHeaders.build(), - additionalQueryParams.build(), - ) + override fun toString() = + "Body{amount=$amount, currency=$currency, invoiceSettings=$invoiceSettings, perUnitCostBasis=$perUnitCostBasis, threshold=$threshold, activeFrom=$activeFrom, expiresAfter=$expiresAfter, expiresAfterUnit=$expiresAfterUnit, additionalProperties=$additionalProperties}" } /** Settings for invoices generated by triggered top-ups. */ - @NoAutoDetect class InvoiceSettings - @JsonCreator private constructor( - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("memo") - @ExcludeMissing - private val memo: JsonField = JsonMissing.of(), - @JsonProperty("require_successful_payment") - @ExcludeMissing - private val requireSuccessfulPayment: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val autoCollection: JsonField, + private val netTerms: JsonField, + private val memo: JsonField, + private val requireSuccessfulPayment: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("memo") @ExcludeMissing memo: JsonField = JsonMissing.of(), + @JsonProperty("require_successful_payment") + @ExcludeMissing + requireSuccessfulPayment: JsonField = JsonMissing.of(), + ) : this(autoCollection, netTerms, memo, requireSuccessfulPayment, mutableMapOf()) + /** * Whether the credits purchase invoice should auto collect with the customer's saved * payment method. @@ -1047,23 +1068,15 @@ private constructor( @ExcludeMissing fun _requireSuccessfulPayment(): JsonField = requireSuccessfulPayment + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoiceSettings = apply { - if (validated) { - return@apply - } - - autoCollection() - netTerms() - memo() - requireSuccessfulPayment() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1203,10 +1216,24 @@ private constructor( checkRequired("netTerms", netTerms), memo, requireSuccessfulPayment, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoiceSettings = apply { + if (validated) { + return@apply + } + + autoCollection() + netTerms() + memo() + requireSuccessfulPayment() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateResponse.kt index 15317ece..cff36b4b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateResponse.kt @@ -11,44 +11,56 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class CustomerCreditTopUpCreateResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("invoice_settings") - @ExcludeMissing - private val invoiceSettings: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonProperty("threshold") - @ExcludeMissing - private val threshold: JsonField = JsonMissing.of(), - @JsonProperty("expires_after") - @ExcludeMissing - private val expiresAfter: JsonField = JsonMissing.of(), - @JsonProperty("expires_after_unit") - @ExcludeMissing - private val expiresAfterUnit: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val currency: JsonField, + private val invoiceSettings: JsonField, + private val perUnitCostBasis: JsonField, + private val threshold: JsonField, + private val expiresAfter: JsonField, + private val expiresAfterUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("currency") @ExcludeMissing currency: JsonField = JsonMissing.of(), + @JsonProperty("invoice_settings") + @ExcludeMissing + invoiceSettings: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + @JsonProperty("threshold") @ExcludeMissing threshold: JsonField = JsonMissing.of(), + @JsonProperty("expires_after") + @ExcludeMissing + expiresAfter: JsonField = JsonMissing.of(), + @JsonProperty("expires_after_unit") + @ExcludeMissing + expiresAfterUnit: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + currency, + invoiceSettings, + perUnitCostBasis, + threshold, + expiresAfter, + expiresAfterUnit, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -182,27 +194,15 @@ private constructor( @ExcludeMissing fun _expiresAfterUnit(): JsonField = expiresAfterUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CustomerCreditTopUpCreateResponse = apply { - if (validated) { - return@apply - } - - id() - amount() - currency() - invoiceSettings().validate() - perUnitCostBasis() - threshold() - expiresAfter() - expiresAfterUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -423,31 +423,50 @@ private constructor( checkRequired("threshold", threshold), expiresAfter, expiresAfterUnit, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CustomerCreditTopUpCreateResponse = apply { + if (validated) { + return@apply + } + + id() + amount() + currency() + invoiceSettings().validate() + perUnitCostBasis() + threshold() + expiresAfter() + expiresAfterUnit() + validated = true + } + /** Settings for invoices generated by triggered top-ups. */ - @NoAutoDetect class InvoiceSettings - @JsonCreator private constructor( - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("memo") - @ExcludeMissing - private val memo: JsonField = JsonMissing.of(), - @JsonProperty("require_successful_payment") - @ExcludeMissing - private val requireSuccessfulPayment: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val autoCollection: JsonField, + private val netTerms: JsonField, + private val memo: JsonField, + private val requireSuccessfulPayment: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("memo") @ExcludeMissing memo: JsonField = JsonMissing.of(), + @JsonProperty("require_successful_payment") + @ExcludeMissing + requireSuccessfulPayment: JsonField = JsonMissing.of(), + ) : this(autoCollection, netTerms, memo, requireSuccessfulPayment, mutableMapOf()) + /** * Whether the credits purchase invoice should auto collect with the customer's saved * payment method. @@ -518,23 +537,15 @@ private constructor( @ExcludeMissing fun _requireSuccessfulPayment(): JsonField = requireSuccessfulPayment + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoiceSettings = apply { - if (validated) { - return@apply - } - - autoCollection() - netTerms() - memo() - requireSuccessfulPayment() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -674,10 +685,24 @@ private constructor( checkRequired("netTerms", netTerms), memo, requireSuccessfulPayment, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoiceSettings = apply { + if (validated) { + return@apply + } + + autoCollection() + netTerms() + memo() + requireSuccessfulPayment() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteByExternalIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteByExternalIdParams.kt index 0ae0a153..493ebdb4 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteByExternalIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteByExternalIdParams.kt @@ -2,13 +2,15 @@ package com.withorb.api.models +import com.fasterxml.jackson.annotation.JsonAnyGetter +import com.fasterxml.jackson.annotation.JsonAnySetter +import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.toImmutable +import java.util.Collections import java.util.Objects import java.util.Optional @@ -22,7 +24,7 @@ private constructor( private val topUpId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: Map, + private val additionalBodyProperties: MutableMap, ) : Params { fun externalCustomerId(): String = externalCustomerId @@ -33,22 +35,15 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _additionalBodyProperties(): Map = additionalBodyProperties - - @JvmSynthetic - internal fun _body(): Optional> = - Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) - - fun _pathParam(index: Int): String = - when (index) { - 0 -> externalCustomerId - 1 -> topUpId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders + @JsonAnySetter + private fun putAdditionalBodyProperty(key: String, value: JsonValue) { + additionalBodyProperties.put(key, value) + } - override fun _queryParams(): QueryParams = additionalQueryParams + @JsonAnyGetter + @ExcludeMissing + fun _additionalBodyProperties(): Map = + Collections.unmodifiableMap(additionalBodyProperties) fun toBuilder() = Builder().from(this) @@ -68,7 +63,6 @@ private constructor( } /** A builder for [CustomerCreditTopUpDeleteByExternalIdParams]. */ - @NoAutoDetect class Builder internal constructor() { private var externalCustomerId: String? = null @@ -236,10 +230,25 @@ private constructor( checkRequired("topUpId", topUpId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toImmutable(), + additionalBodyProperties.toMutableMap(), ) } + @JvmSynthetic + internal fun _body(): Optional> = + Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) + + fun _pathParam(index: Int): String = + when (index) { + 0 -> externalCustomerId + 1 -> topUpId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteParams.kt index f46de606..bbb02dc9 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteParams.kt @@ -2,13 +2,15 @@ package com.withorb.api.models +import com.fasterxml.jackson.annotation.JsonAnyGetter +import com.fasterxml.jackson.annotation.JsonAnySetter +import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.toImmutable +import java.util.Collections import java.util.Objects import java.util.Optional @@ -22,7 +24,7 @@ private constructor( private val topUpId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: Map, + private val additionalBodyProperties: MutableMap, ) : Params { fun customerId(): String = customerId @@ -33,22 +35,15 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _additionalBodyProperties(): Map = additionalBodyProperties - - @JvmSynthetic - internal fun _body(): Optional> = - Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) - - fun _pathParam(index: Int): String = - when (index) { - 0 -> customerId - 1 -> topUpId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders + @JsonAnySetter + private fun putAdditionalBodyProperty(key: String, value: JsonValue) { + additionalBodyProperties.put(key, value) + } - override fun _queryParams(): QueryParams = additionalQueryParams + @JsonAnyGetter + @ExcludeMissing + fun _additionalBodyProperties(): Map = + Collections.unmodifiableMap(additionalBodyProperties) fun toBuilder() = Builder().from(this) @@ -68,7 +63,6 @@ private constructor( } /** A builder for [CustomerCreditTopUpDeleteParams]. */ - @NoAutoDetect class Builder internal constructor() { private var customerId: String? = null @@ -232,10 +226,25 @@ private constructor( checkRequired("topUpId", topUpId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toImmutable(), + additionalBodyProperties.toMutableMap(), ) } + @JvmSynthetic + internal fun _body(): Optional> = + Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) + + fun _pathParam(index: Int): String = + when (index) { + 0 -> customerId + 1 -> topUpId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdPage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdPage.kt index 67bcab22..f4cee4cb 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdPage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdPage.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.blocking.customers.credits.TopUpService +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.stream.Stream @@ -84,19 +82,20 @@ private constructor( ) = CustomerCreditTopUpListByExternalIdPage(topUpsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") - private val data: JsonField> = - JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") + data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() @@ -111,9 +110,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -189,7 +194,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdPageAsync.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdPageAsync.kt index da3a3378..0d676ee5 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdPageAsync.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdPageAsync.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.async.customers.credits.TopUpServiceAsync +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.concurrent.CompletableFuture @@ -86,19 +84,20 @@ private constructor( ) = CustomerCreditTopUpListByExternalIdPageAsync(topUpsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") - private val data: JsonField> = - JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") + data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() @@ -113,9 +112,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -191,7 +196,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdParams.kt index 10fb9288..fc764c55 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -36,23 +35,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> externalCustomerId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - cursor?.let { put("cursor", it) } - limit?.let { put("limit", it.toString()) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -70,7 +52,6 @@ private constructor( } /** A builder for [CustomerCreditTopUpListByExternalIdParams]. */ - @NoAutoDetect class Builder internal constructor() { private var externalCustomerId: String? = null @@ -238,6 +219,23 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> externalCustomerId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + cursor?.let { put("cursor", it) } + limit?.let { put("limit", it.toString()) } + putAll(additionalQueryParams) + } + .build() + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdResponse.kt index 284ea9c4..d5e2adee 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdResponse.kt @@ -11,44 +11,56 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class CustomerCreditTopUpListByExternalIdResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("invoice_settings") - @ExcludeMissing - private val invoiceSettings: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonProperty("threshold") - @ExcludeMissing - private val threshold: JsonField = JsonMissing.of(), - @JsonProperty("expires_after") - @ExcludeMissing - private val expiresAfter: JsonField = JsonMissing.of(), - @JsonProperty("expires_after_unit") - @ExcludeMissing - private val expiresAfterUnit: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val currency: JsonField, + private val invoiceSettings: JsonField, + private val perUnitCostBasis: JsonField, + private val threshold: JsonField, + private val expiresAfter: JsonField, + private val expiresAfterUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("currency") @ExcludeMissing currency: JsonField = JsonMissing.of(), + @JsonProperty("invoice_settings") + @ExcludeMissing + invoiceSettings: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + @JsonProperty("threshold") @ExcludeMissing threshold: JsonField = JsonMissing.of(), + @JsonProperty("expires_after") + @ExcludeMissing + expiresAfter: JsonField = JsonMissing.of(), + @JsonProperty("expires_after_unit") + @ExcludeMissing + expiresAfterUnit: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + currency, + invoiceSettings, + perUnitCostBasis, + threshold, + expiresAfter, + expiresAfterUnit, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -182,27 +194,15 @@ private constructor( @ExcludeMissing fun _expiresAfterUnit(): JsonField = expiresAfterUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CustomerCreditTopUpListByExternalIdResponse = apply { - if (validated) { - return@apply - } - - id() - amount() - currency() - invoiceSettings().validate() - perUnitCostBasis() - threshold() - expiresAfter() - expiresAfterUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -424,31 +424,50 @@ private constructor( checkRequired("threshold", threshold), expiresAfter, expiresAfterUnit, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CustomerCreditTopUpListByExternalIdResponse = apply { + if (validated) { + return@apply + } + + id() + amount() + currency() + invoiceSettings().validate() + perUnitCostBasis() + threshold() + expiresAfter() + expiresAfterUnit() + validated = true + } + /** Settings for invoices generated by triggered top-ups. */ - @NoAutoDetect class InvoiceSettings - @JsonCreator private constructor( - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("memo") - @ExcludeMissing - private val memo: JsonField = JsonMissing.of(), - @JsonProperty("require_successful_payment") - @ExcludeMissing - private val requireSuccessfulPayment: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val autoCollection: JsonField, + private val netTerms: JsonField, + private val memo: JsonField, + private val requireSuccessfulPayment: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("memo") @ExcludeMissing memo: JsonField = JsonMissing.of(), + @JsonProperty("require_successful_payment") + @ExcludeMissing + requireSuccessfulPayment: JsonField = JsonMissing.of(), + ) : this(autoCollection, netTerms, memo, requireSuccessfulPayment, mutableMapOf()) + /** * Whether the credits purchase invoice should auto collect with the customer's saved * payment method. @@ -519,23 +538,15 @@ private constructor( @ExcludeMissing fun _requireSuccessfulPayment(): JsonField = requireSuccessfulPayment + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoiceSettings = apply { - if (validated) { - return@apply - } - - autoCollection() - netTerms() - memo() - requireSuccessfulPayment() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -675,10 +686,24 @@ private constructor( checkRequired("netTerms", netTerms), memo, requireSuccessfulPayment, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoiceSettings = apply { + if (validated) { + return@apply + } + + autoCollection() + netTerms() + memo() + requireSuccessfulPayment() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListPage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListPage.kt index 85dd4f51..db733984 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListPage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListPage.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.blocking.customers.credits.TopUpService +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.stream.Stream @@ -84,18 +82,20 @@ private constructor( ) = CustomerCreditTopUpListPage(topUpsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") - private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") + data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -109,9 +109,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -185,7 +191,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListPageAsync.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListPageAsync.kt index 95f5a9d9..53804a58 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListPageAsync.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListPageAsync.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.async.customers.credits.TopUpServiceAsync +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.concurrent.CompletableFuture @@ -86,18 +84,20 @@ private constructor( ) = CustomerCreditTopUpListPageAsync(topUpsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") - private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") + data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -111,9 +111,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -187,7 +193,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListParams.kt index eb705da4..f8c93c84 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -36,23 +35,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> customerId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - cursor?.let { put("cursor", it) } - limit?.let { put("limit", it.toString()) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -70,7 +52,6 @@ private constructor( } /** A builder for [CustomerCreditTopUpListParams]. */ - @NoAutoDetect class Builder internal constructor() { private var customerId: String? = null @@ -232,6 +213,23 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> customerId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + cursor?.let { put("cursor", it) } + limit?.let { put("limit", it.toString()) } + putAll(additionalQueryParams) + } + .build() + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListResponse.kt index 019bd3fd..8f1e18dc 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListResponse.kt @@ -11,44 +11,56 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class CustomerCreditTopUpListResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("invoice_settings") - @ExcludeMissing - private val invoiceSettings: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_cost_basis") - @ExcludeMissing - private val perUnitCostBasis: JsonField = JsonMissing.of(), - @JsonProperty("threshold") - @ExcludeMissing - private val threshold: JsonField = JsonMissing.of(), - @JsonProperty("expires_after") - @ExcludeMissing - private val expiresAfter: JsonField = JsonMissing.of(), - @JsonProperty("expires_after_unit") - @ExcludeMissing - private val expiresAfterUnit: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val currency: JsonField, + private val invoiceSettings: JsonField, + private val perUnitCostBasis: JsonField, + private val threshold: JsonField, + private val expiresAfter: JsonField, + private val expiresAfterUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("currency") @ExcludeMissing currency: JsonField = JsonMissing.of(), + @JsonProperty("invoice_settings") + @ExcludeMissing + invoiceSettings: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_cost_basis") + @ExcludeMissing + perUnitCostBasis: JsonField = JsonMissing.of(), + @JsonProperty("threshold") @ExcludeMissing threshold: JsonField = JsonMissing.of(), + @JsonProperty("expires_after") + @ExcludeMissing + expiresAfter: JsonField = JsonMissing.of(), + @JsonProperty("expires_after_unit") + @ExcludeMissing + expiresAfterUnit: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + currency, + invoiceSettings, + perUnitCostBasis, + threshold, + expiresAfter, + expiresAfterUnit, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -182,27 +194,15 @@ private constructor( @ExcludeMissing fun _expiresAfterUnit(): JsonField = expiresAfterUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CustomerCreditTopUpListResponse = apply { - if (validated) { - return@apply - } - - id() - amount() - currency() - invoiceSettings().validate() - perUnitCostBasis() - threshold() - expiresAfter() - expiresAfterUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -423,31 +423,50 @@ private constructor( checkRequired("threshold", threshold), expiresAfter, expiresAfterUnit, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CustomerCreditTopUpListResponse = apply { + if (validated) { + return@apply + } + + id() + amount() + currency() + invoiceSettings().validate() + perUnitCostBasis() + threshold() + expiresAfter() + expiresAfterUnit() + validated = true + } + /** Settings for invoices generated by triggered top-ups. */ - @NoAutoDetect class InvoiceSettings - @JsonCreator private constructor( - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("memo") - @ExcludeMissing - private val memo: JsonField = JsonMissing.of(), - @JsonProperty("require_successful_payment") - @ExcludeMissing - private val requireSuccessfulPayment: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val autoCollection: JsonField, + private val netTerms: JsonField, + private val memo: JsonField, + private val requireSuccessfulPayment: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("memo") @ExcludeMissing memo: JsonField = JsonMissing.of(), + @JsonProperty("require_successful_payment") + @ExcludeMissing + requireSuccessfulPayment: JsonField = JsonMissing.of(), + ) : this(autoCollection, netTerms, memo, requireSuccessfulPayment, mutableMapOf()) + /** * Whether the credits purchase invoice should auto collect with the customer's saved * payment method. @@ -518,23 +537,15 @@ private constructor( @ExcludeMissing fun _requireSuccessfulPayment(): JsonField = requireSuccessfulPayment + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoiceSettings = apply { - if (validated) { - return@apply - } - - autoCollection() - netTerms() - memo() - requireSuccessfulPayment() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -674,10 +685,24 @@ private constructor( checkRequired("netTerms", netTerms), memo, requireSuccessfulPayment, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoiceSettings = apply { + if (validated) { + return@apply + } + + autoCollection() + netTerms() + memo() + requireSuccessfulPayment() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerDeleteParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerDeleteParams.kt index 3ef8fd74..901c05b8 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerDeleteParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerDeleteParams.kt @@ -2,13 +2,15 @@ package com.withorb.api.models +import com.fasterxml.jackson.annotation.JsonAnyGetter +import com.fasterxml.jackson.annotation.JsonAnySetter +import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.toImmutable +import java.util.Collections import java.util.Objects import java.util.Optional @@ -32,7 +34,7 @@ private constructor( private val customerId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: Map, + private val additionalBodyProperties: MutableMap, ) : Params { fun customerId(): String = customerId @@ -41,21 +43,15 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _additionalBodyProperties(): Map = additionalBodyProperties - - @JvmSynthetic - internal fun _body(): Optional> = - Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) - - fun _pathParam(index: Int): String = - when (index) { - 0 -> customerId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders + @JsonAnySetter + private fun putAdditionalBodyProperty(key: String, value: JsonValue) { + additionalBodyProperties.put(key, value) + } - override fun _queryParams(): QueryParams = additionalQueryParams + @JsonAnyGetter + @ExcludeMissing + fun _additionalBodyProperties(): Map = + Collections.unmodifiableMap(additionalBodyProperties) fun toBuilder() = Builder().from(this) @@ -73,7 +69,6 @@ private constructor( } /** A builder for [CustomerDeleteParams]. */ - @NoAutoDetect class Builder internal constructor() { private var customerId: String? = null @@ -228,10 +223,24 @@ private constructor( checkRequired("customerId", customerId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toImmutable(), + additionalBodyProperties.toMutableMap(), ) } + @JvmSynthetic + internal fun _body(): Optional> = + Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) + + fun _pathParam(index: Int): String = + when (index) { + 0 -> customerId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerFetchByExternalIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerFetchByExternalIdParams.kt index fae40384..d4d8e8fc 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerFetchByExternalIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerFetchByExternalIdParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -29,16 +28,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> externalCustomerId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - fun toBuilder() = Builder().from(this) companion object { @@ -56,7 +45,6 @@ private constructor( } /** A builder for [CustomerFetchByExternalIdParams]. */ - @NoAutoDetect class Builder internal constructor() { private var externalCustomerId: String? = null @@ -194,6 +182,16 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> externalCustomerId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerFetchParams.kt index 0abef9f2..fdfa378f 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerFetchParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -28,16 +27,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> customerId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - fun toBuilder() = Builder().from(this) companion object { @@ -54,7 +43,6 @@ private constructor( } /** A builder for [CustomerFetchParams]. */ - @NoAutoDetect class Builder internal constructor() { private var customerId: String? = null @@ -188,6 +176,16 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> customerId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerListPage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerListPage.kt index 33d2a813..3b918190 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerListPage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerListPage.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.blocking.CustomerService +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.stream.Stream @@ -87,17 +85,19 @@ private constructor( CustomerListPage(customersService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -110,9 +110,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -181,7 +187,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerListPageAsync.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerListPageAsync.kt index 5ebc4bbb..cd9e93db 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerListPageAsync.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerListPageAsync.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.async.CustomerServiceAsync +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.concurrent.CompletableFuture @@ -92,17 +90,19 @@ private constructor( ) = CustomerListPageAsync(customersService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -115,9 +115,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -188,7 +194,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerListParams.kt index 44e1e3c5..192c5a00 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerListParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams @@ -52,29 +51,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - createdAtGt?.let { - put("created_at[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtGte?.let { - put("created_at[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtLt?.let { - put("created_at[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtLte?.let { - put("created_at[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - cursor?.let { put("cursor", it) } - limit?.let { put("limit", it.toString()) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -86,7 +62,6 @@ private constructor( } /** A builder for [CustomerListParams]. */ - @NoAutoDetect class Builder internal constructor() { private var createdAtGt: OffsetDateTime? = null @@ -272,6 +247,29 @@ private constructor( ) } + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + createdAtGt?.let { + put("created_at[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtGte?.let { + put("created_at[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtLt?.let { + put("created_at[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtLte?.let { + put("created_at[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + cursor?.let { put("cursor", it) } + limit?.let { put("limit", it.toString()) } + putAll(additionalQueryParams) + } + .build() + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerSyncPaymentMethodsFromGatewayByExternalCustomerIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerSyncPaymentMethodsFromGatewayByExternalCustomerIdParams.kt index 0c8fe187..eb4d5771 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerSyncPaymentMethodsFromGatewayByExternalCustomerIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerSyncPaymentMethodsFromGatewayByExternalCustomerIdParams.kt @@ -2,13 +2,15 @@ package com.withorb.api.models +import com.fasterxml.jackson.annotation.JsonAnyGetter +import com.fasterxml.jackson.annotation.JsonAnySetter +import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.toImmutable +import java.util.Collections import java.util.Objects import java.util.Optional @@ -25,7 +27,7 @@ private constructor( private val customerId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: Map, + private val additionalBodyProperties: MutableMap, ) : Params { fun customerId(): String = customerId @@ -34,21 +36,15 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _additionalBodyProperties(): Map = additionalBodyProperties - - @JvmSynthetic - internal fun _body(): Optional> = - Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) - - fun _pathParam(index: Int): String = - when (index) { - 0 -> customerId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders + @JsonAnySetter + private fun putAdditionalBodyProperty(key: String, value: JsonValue) { + additionalBodyProperties.put(key, value) + } - override fun _queryParams(): QueryParams = additionalQueryParams + @JsonAnyGetter + @ExcludeMissing + fun _additionalBodyProperties(): Map = + Collections.unmodifiableMap(additionalBodyProperties) fun toBuilder() = Builder().from(this) @@ -67,7 +63,6 @@ private constructor( } /** A builder for [CustomerSyncPaymentMethodsFromGatewayByExternalCustomerIdParams]. */ - @NoAutoDetect class Builder internal constructor() { private var customerId: String? = null @@ -234,10 +229,24 @@ private constructor( checkRequired("customerId", customerId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toImmutable(), + additionalBodyProperties.toMutableMap(), ) } + @JvmSynthetic + internal fun _body(): Optional> = + Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) + + fun _pathParam(index: Int): String = + when (index) { + 0 -> customerId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerSyncPaymentMethodsFromGatewayParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerSyncPaymentMethodsFromGatewayParams.kt index a2074b80..c898bdf7 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerSyncPaymentMethodsFromGatewayParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerSyncPaymentMethodsFromGatewayParams.kt @@ -2,13 +2,15 @@ package com.withorb.api.models +import com.fasterxml.jackson.annotation.JsonAnyGetter +import com.fasterxml.jackson.annotation.JsonAnySetter +import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.toImmutable +import java.util.Collections import java.util.Objects import java.util.Optional @@ -25,7 +27,7 @@ private constructor( private val externalCustomerId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: Map, + private val additionalBodyProperties: MutableMap, ) : Params { fun externalCustomerId(): String = externalCustomerId @@ -34,21 +36,15 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _additionalBodyProperties(): Map = additionalBodyProperties - - @JvmSynthetic - internal fun _body(): Optional> = - Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) - - fun _pathParam(index: Int): String = - when (index) { - 0 -> externalCustomerId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders + @JsonAnySetter + private fun putAdditionalBodyProperty(key: String, value: JsonValue) { + additionalBodyProperties.put(key, value) + } - override fun _queryParams(): QueryParams = additionalQueryParams + @JsonAnyGetter + @ExcludeMissing + fun _additionalBodyProperties(): Map = + Collections.unmodifiableMap(additionalBodyProperties) fun toBuilder() = Builder().from(this) @@ -67,7 +63,6 @@ private constructor( } /** A builder for [CustomerSyncPaymentMethodsFromGatewayParams]. */ - @NoAutoDetect class Builder internal constructor() { private var externalCustomerId: String? = null @@ -229,10 +224,24 @@ private constructor( checkRequired("externalCustomerId", externalCustomerId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toImmutable(), + additionalBodyProperties.toMutableMap(), ) } + @JvmSynthetic + internal fun _body(): Optional> = + Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) + + fun _pathParam(index: Int): String = + when (index) { + 0 -> externalCustomerId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateByExternalIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateByExternalIdParams.kt index c35d436d..9a154133 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateByExternalIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateByExternalIdParams.kt @@ -20,16 +20,15 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -422,219 +421,421 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body + fun toBuilder() = Builder().from(this) - fun _pathParam(index: Int): String = - when (index) { - 0 -> id - else -> "" - } + companion object { - override fun _headers(): Headers = additionalHeaders + /** + * Returns a mutable builder for constructing an instance of + * [CustomerUpdateByExternalIdParams]. + * + * The following fields are required: + * ```java + * .id() + * ``` + */ + @JvmStatic fun builder() = Builder() + } - override fun _queryParams(): QueryParams = additionalQueryParams + /** A builder for [CustomerUpdateByExternalIdParams]. */ + class Builder internal constructor() { - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("accounting_sync_configuration") - @ExcludeMissing - private val accountingSyncConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("additional_emails") - @ExcludeMissing - private val additionalEmails: JsonField> = JsonMissing.of(), - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("billing_address") - @ExcludeMissing - private val billingAddress: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("email") - @ExcludeMissing - private val email: JsonField = JsonMissing.of(), - @JsonProperty("email_delivery") - @ExcludeMissing - private val emailDelivery: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonProperty("hierarchy") - @ExcludeMissing - private val hierarchy: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("payment_provider") - @ExcludeMissing - private val paymentProvider: JsonField = JsonMissing.of(), - @JsonProperty("payment_provider_id") - @ExcludeMissing - private val paymentProviderId: JsonField = JsonMissing.of(), - @JsonProperty("reporting_configuration") - @ExcludeMissing - private val reportingConfiguration: JsonField = JsonMissing.of(), - @JsonProperty("shipping_address") - @ExcludeMissing - private val shippingAddress: JsonField = JsonMissing.of(), - @JsonProperty("tax_configuration") - @ExcludeMissing - private val taxConfiguration: JsonField = JsonMissing.of(), - @JsonProperty("tax_id") - @ExcludeMissing - private val taxId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { + private var id: String? = null + private var body: Body.Builder = Body.builder() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun accountingSyncConfiguration(): Optional = - Optional.ofNullable( - accountingSyncConfiguration.getNullable("accounting_sync_configuration") - ) + @JvmSynthetic + internal fun from(customerUpdateByExternalIdParams: CustomerUpdateByExternalIdParams) = + apply { + id = customerUpdateByExternalIdParams.id + body = customerUpdateByExternalIdParams.body.toBuilder() + additionalHeaders = customerUpdateByExternalIdParams.additionalHeaders.toBuilder() + additionalQueryParams = + customerUpdateByExternalIdParams.additionalQueryParams.toBuilder() + } + + fun id(id: String) = apply { this.id = id } + + fun accountingSyncConfiguration(accountingSyncConfiguration: AccountingSyncConfiguration?) = + apply { + body.accountingSyncConfiguration(accountingSyncConfiguration) + } /** - * Additional email addresses for this customer. If populated, these email addresses will be - * CC'd for customer communications. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Alias for calling [Builder.accountingSyncConfiguration] with + * `accountingSyncConfiguration.orElse(null)`. */ - fun additionalEmails(): Optional> = - Optional.ofNullable(additionalEmails.getNullable("additional_emails")) + fun accountingSyncConfiguration( + accountingSyncConfiguration: Optional + ) = accountingSyncConfiguration(accountingSyncConfiguration.getOrNull()) /** - * Used to determine if invoices for this customer will automatically attempt to charge a - * saved payment method, if available. This parameter defaults to `True` when a payment - * provider is provided on customer creation. + * Sets [Builder.accountingSyncConfiguration] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.accountingSyncConfiguration] with a well-typed + * [AccountingSyncConfiguration] value instead. This method is primarily for setting the + * field to an undocumented or not yet supported value. */ - fun autoCollection(): Optional = - Optional.ofNullable(autoCollection.getNullable("auto_collection")) + fun accountingSyncConfiguration( + accountingSyncConfiguration: JsonField + ) = apply { body.accountingSyncConfiguration(accountingSyncConfiguration) } /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Additional email addresses for this customer. If populated, these email addresses will be + * CC'd for customer communications. */ - fun billingAddress(): Optional = - Optional.ofNullable(billingAddress.getNullable("billing_address")) + fun additionalEmails(additionalEmails: List?) = apply { + body.additionalEmails(additionalEmails) + } + + /** Alias for calling [Builder.additionalEmails] with `additionalEmails.orElse(null)`. */ + fun additionalEmails(additionalEmails: Optional>) = + additionalEmails(additionalEmails.getOrNull()) /** - * An ISO 4217 currency string used for the customer's invoices and balance. If not set at - * creation time, will be set at subscription creation time. + * Sets [Builder.additionalEmails] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.additionalEmails] with a well-typed `List` value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun currency(): Optional = Optional.ofNullable(currency.getNullable("currency")) + fun additionalEmails(additionalEmails: JsonField>) = apply { + body.additionalEmails(additionalEmails) + } /** - * A valid customer email, to be used for invoicing and notifications. + * Adds a single [String] to [additionalEmails]. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * @throws IllegalStateException if the field was previously set to a non-list. */ - fun email(): Optional = Optional.ofNullable(email.getNullable("email")) + fun addAdditionalEmail(additionalEmail: String) = apply { + body.addAdditionalEmail(additionalEmail) + } /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Used to determine if invoices for this customer will automatically attempt to charge a + * saved payment method, if available. This parameter defaults to `True` when a payment + * provider is provided on customer creation. */ - fun emailDelivery(): Optional = - Optional.ofNullable(emailDelivery.getNullable("email_delivery")) + fun autoCollection(autoCollection: Boolean?) = apply { body.autoCollection(autoCollection) } /** - * The external customer ID. This can only be set if empty and the customer has no past or - * current subscriptions. + * Alias for [Builder.autoCollection]. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * This unboxed primitive overload exists for backwards compatibility. */ - fun externalCustomerId(): Optional = - Optional.ofNullable(externalCustomerId.getNullable("external_customer_id")) + fun autoCollection(autoCollection: Boolean) = autoCollection(autoCollection as Boolean?) + + /** Alias for calling [Builder.autoCollection] with `autoCollection.orElse(null)`. */ + fun autoCollection(autoCollection: Optional) = + autoCollection(autoCollection.getOrNull()) /** - * The hierarchical relationships for this customer. + * Sets [Builder.autoCollection] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.autoCollection] with a well-typed [Boolean] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun hierarchy(): Optional = - Optional.ofNullable(hierarchy.getNullable("hierarchy")) + fun autoCollection(autoCollection: JsonField) = apply { + body.autoCollection(autoCollection) + } + + fun billingAddress(billingAddress: BillingAddress?) = apply { + body.billingAddress(billingAddress) + } + + /** Alias for calling [Builder.billingAddress] with `billingAddress.orElse(null)`. */ + fun billingAddress(billingAddress: Optional) = + billingAddress(billingAddress.getOrNull()) /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. + * Sets [Builder.billingAddress] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.billingAddress] with a well-typed [BillingAddress] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) + fun billingAddress(billingAddress: JsonField) = apply { + body.billingAddress(billingAddress) + } /** - * The full name of the customer - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * An ISO 4217 currency string used for the customer's invoices and balance. If not set at + * creation time, will be set at subscription creation time. */ - fun name(): Optional = Optional.ofNullable(name.getNullable("name")) + fun currency(currency: String?) = apply { body.currency(currency) } + + /** Alias for calling [Builder.currency] with `currency.orElse(null)`. */ + fun currency(currency: Optional) = currency(currency.getOrNull()) /** - * This is used for creating charges or invoices in an external system via Orb. When not in - * test mode: - * - the connection must first be configured in the Orb webapp. - * - if the provider is an invoicing provider (`stripe_invoice`, `quickbooks`, `bill.com`, - * `netsuite`), any product mappings must first be configured with the Orb team. + * Sets [Builder.currency] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.currency] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - fun paymentProvider(): Optional = - Optional.ofNullable(paymentProvider.getNullable("payment_provider")) + fun currency(currency: JsonField) = apply { body.currency(currency) } + + /** A valid customer email, to be used for invoicing and notifications. */ + fun email(email: String?) = apply { body.email(email) } + + /** Alias for calling [Builder.email] with `email.orElse(null)`. */ + fun email(email: Optional) = email(email.getOrNull()) /** - * The ID of this customer in an external payments solution, such as Stripe. This is used - * for creating charges or invoices in the external system via Orb. + * Sets [Builder.email] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.email] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - fun paymentProviderId(): Optional = - Optional.ofNullable(paymentProviderId.getNullable("payment_provider_id")) + fun email(email: JsonField) = apply { body.email(email) } - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun reportingConfiguration(): Optional = - Optional.ofNullable(reportingConfiguration.getNullable("reporting_configuration")) + fun emailDelivery(emailDelivery: Boolean?) = apply { body.emailDelivery(emailDelivery) } /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Alias for [Builder.emailDelivery]. + * + * This unboxed primitive overload exists for backwards compatibility. */ - fun shippingAddress(): Optional = - Optional.ofNullable(shippingAddress.getNullable("shipping_address")) + fun emailDelivery(emailDelivery: Boolean) = emailDelivery(emailDelivery as Boolean?) - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + /** Alias for calling [Builder.emailDelivery] with `emailDelivery.orElse(null)`. */ + fun emailDelivery(emailDelivery: Optional) = + emailDelivery(emailDelivery.getOrNull()) + + /** + * Sets [Builder.emailDelivery] to an arbitrary JSON value. + * + * You should usually call [Builder.emailDelivery] with a well-typed [Boolean] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun taxConfiguration(): Optional = - Optional.ofNullable(taxConfiguration.getNullable("tax_configuration")) + fun emailDelivery(emailDelivery: JsonField) = apply { + body.emailDelivery(emailDelivery) + } + + /** + * The external customer ID. This can only be set if empty and the customer has no past or + * current subscriptions. + */ + fun externalCustomerId(externalCustomerId: String?) = apply { + body.externalCustomerId(externalCustomerId) + } + + /** + * Alias for calling [Builder.externalCustomerId] with `externalCustomerId.orElse(null)`. + */ + fun externalCustomerId(externalCustomerId: Optional) = + externalCustomerId(externalCustomerId.getOrNull()) + + /** + * Sets [Builder.externalCustomerId] to an arbitrary JSON value. + * + * You should usually call [Builder.externalCustomerId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun externalCustomerId(externalCustomerId: JsonField) = apply { + body.externalCustomerId(externalCustomerId) + } + + /** The hierarchical relationships for this customer. */ + fun hierarchy(hierarchy: Hierarchy?) = apply { body.hierarchy(hierarchy) } + + /** Alias for calling [Builder.hierarchy] with `hierarchy.orElse(null)`. */ + fun hierarchy(hierarchy: Optional) = hierarchy(hierarchy.getOrNull()) + + /** + * Sets [Builder.hierarchy] to an arbitrary JSON value. + * + * You should usually call [Builder.hierarchy] with a well-typed [Hierarchy] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun hierarchy(hierarchy: JsonField) = apply { body.hierarchy(hierarchy) } + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. + */ + fun metadata(metadata: Metadata?) = apply { body.metadata(metadata) } + + /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ + fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) + + /** + * Sets [Builder.metadata] to an arbitrary JSON value. + * + * You should usually call [Builder.metadata] with a well-typed [Metadata] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun metadata(metadata: JsonField) = apply { body.metadata(metadata) } + + /** The full name of the customer */ + fun name(name: String?) = apply { body.name(name) } + + /** Alias for calling [Builder.name] with `name.orElse(null)`. */ + fun name(name: Optional) = name(name.getOrNull()) + + /** + * Sets [Builder.name] to an arbitrary JSON value. + * + * You should usually call [Builder.name] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. + */ + fun name(name: JsonField) = apply { body.name(name) } + + /** + * This is used for creating charges or invoices in an external system via Orb. When not in + * test mode: + * - the connection must first be configured in the Orb webapp. + * - if the provider is an invoicing provider (`stripe_invoice`, `quickbooks`, `bill.com`, + * `netsuite`), any product mappings must first be configured with the Orb team. + */ + fun paymentProvider(paymentProvider: PaymentProvider?) = apply { + body.paymentProvider(paymentProvider) + } + + /** Alias for calling [Builder.paymentProvider] with `paymentProvider.orElse(null)`. */ + fun paymentProvider(paymentProvider: Optional) = + paymentProvider(paymentProvider.getOrNull()) + + /** + * Sets [Builder.paymentProvider] to an arbitrary JSON value. + * + * You should usually call [Builder.paymentProvider] with a well-typed [PaymentProvider] + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. + */ + fun paymentProvider(paymentProvider: JsonField) = apply { + body.paymentProvider(paymentProvider) + } + + /** + * The ID of this customer in an external payments solution, such as Stripe. This is used + * for creating charges or invoices in the external system via Orb. + */ + fun paymentProviderId(paymentProviderId: String?) = apply { + body.paymentProviderId(paymentProviderId) + } + + /** Alias for calling [Builder.paymentProviderId] with `paymentProviderId.orElse(null)`. */ + fun paymentProviderId(paymentProviderId: Optional) = + paymentProviderId(paymentProviderId.getOrNull()) + + /** + * Sets [Builder.paymentProviderId] to an arbitrary JSON value. + * + * You should usually call [Builder.paymentProviderId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun paymentProviderId(paymentProviderId: JsonField) = apply { + body.paymentProviderId(paymentProviderId) + } + + fun reportingConfiguration(reportingConfiguration: ReportingConfiguration?) = apply { + body.reportingConfiguration(reportingConfiguration) + } + + /** + * Alias for calling [Builder.reportingConfiguration] with + * `reportingConfiguration.orElse(null)`. + */ + fun reportingConfiguration(reportingConfiguration: Optional) = + reportingConfiguration(reportingConfiguration.getOrNull()) + + /** + * Sets [Builder.reportingConfiguration] to an arbitrary JSON value. + * + * You should usually call [Builder.reportingConfiguration] with a well-typed + * [ReportingConfiguration] value instead. This method is primarily for setting the field to + * an undocumented or not yet supported value. + */ + fun reportingConfiguration(reportingConfiguration: JsonField) = + apply { + body.reportingConfiguration(reportingConfiguration) + } + + fun shippingAddress(shippingAddress: ShippingAddress?) = apply { + body.shippingAddress(shippingAddress) + } + + /** Alias for calling [Builder.shippingAddress] with `shippingAddress.orElse(null)`. */ + fun shippingAddress(shippingAddress: Optional) = + shippingAddress(shippingAddress.getOrNull()) + + /** + * Sets [Builder.shippingAddress] to an arbitrary JSON value. + * + * You should usually call [Builder.shippingAddress] with a well-typed [ShippingAddress] + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. + */ + fun shippingAddress(shippingAddress: JsonField) = apply { + body.shippingAddress(shippingAddress) + } + + fun taxConfiguration(taxConfiguration: TaxConfiguration?) = apply { + body.taxConfiguration(taxConfiguration) + } + + /** Alias for calling [Builder.taxConfiguration] with `taxConfiguration.orElse(null)`. */ + fun taxConfiguration(taxConfiguration: Optional) = + taxConfiguration(taxConfiguration.getOrNull()) + + /** + * Sets [Builder.taxConfiguration] to an arbitrary JSON value. + * + * You should usually call [Builder.taxConfiguration] with a well-typed [TaxConfiguration] + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. + */ + fun taxConfiguration(taxConfiguration: JsonField) = apply { + body.taxConfiguration(taxConfiguration) + } + + /** + * Alias for calling [taxConfiguration] with `TaxConfiguration.ofNewAvalara(newAvalara)`. + */ + fun taxConfiguration(newAvalara: TaxConfiguration.NewAvalaraTaxConfiguration) = apply { + body.taxConfiguration(newAvalara) + } + + /** + * Alias for calling [taxConfiguration] with the following: + * ```java + * TaxConfiguration.NewAvalaraTaxConfiguration.builder() + * .taxProvider(CustomerUpdateByExternalIdParams.TaxConfiguration.NewAvalaraTaxConfiguration.TaxProvider.AVALARA) + * .taxExempt(taxExempt) + * .build() + * ``` + */ + fun newAvalaraTaxConfiguration(taxExempt: Boolean) = apply { + body.newAvalaraTaxConfiguration(taxExempt) + } + + /** Alias for calling [taxConfiguration] with `TaxConfiguration.ofNewTaxJar(newTaxJar)`. */ + fun taxConfiguration(newTaxJar: TaxConfiguration.NewTaxJarConfiguration) = apply { + body.taxConfiguration(newTaxJar) + } + + /** + * Alias for calling [taxConfiguration] with the following: + * ```java + * TaxConfiguration.NewTaxJarConfiguration.builder() + * .taxProvider(CustomerUpdateByExternalIdParams.TaxConfiguration.NewTaxJarConfiguration.TaxProvider.TAXJAR) + * .taxExempt(taxExempt) + * .build() + * ``` + */ + fun newTaxJarTaxConfiguration(taxExempt: Boolean) = apply { + body.newTaxJarTaxConfiguration(taxExempt) + } /** * Tax IDs are commonly required to be displayed on customer invoices, which are added to @@ -741,198 +942,678 @@ private constructor( * |Uruguay |`uy_ruc` |Uruguayan RUC Number | * |Venezuela |`ve_rif` |Venezuelan RIF Number | * |Vietnam |`vn_tin` |Vietnamese Tax ID Number | - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). */ - fun taxId(): Optional = Optional.ofNullable(taxId.getNullable("tax_id")) + fun taxId(taxId: TaxId?) = apply { body.taxId(taxId) } + + /** Alias for calling [Builder.taxId] with `taxId.orElse(null)`. */ + fun taxId(taxId: Optional) = taxId(taxId.getOrNull()) /** - * Returns the raw JSON value of [accountingSyncConfiguration]. + * Sets [Builder.taxId] to an arbitrary JSON value. * - * Unlike [accountingSyncConfiguration], this method doesn't throw if the JSON field has an - * unexpected type. + * You should usually call [Builder.taxId] with a well-typed [TaxId] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - @JsonProperty("accounting_sync_configuration") - @ExcludeMissing - fun _accountingSyncConfiguration(): JsonField = - accountingSyncConfiguration + fun taxId(taxId: JsonField) = apply { body.taxId(taxId) } - /** - * Returns the raw JSON value of [additionalEmails]. - * - * Unlike [additionalEmails], this method doesn't throw if the JSON field has an unexpected - * type. - */ - @JsonProperty("additional_emails") - @ExcludeMissing - fun _additionalEmails(): JsonField> = additionalEmails + fun additionalBodyProperties(additionalBodyProperties: Map) = apply { + body.additionalProperties(additionalBodyProperties) + } - /** - * Returns the raw JSON value of [autoCollection]. - * - * Unlike [autoCollection], this method doesn't throw if the JSON field has an unexpected - * type. - */ - @JsonProperty("auto_collection") - @ExcludeMissing - fun _autoCollection(): JsonField = autoCollection + fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { + body.putAdditionalProperty(key, value) + } + + fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = + apply { + body.putAllAdditionalProperties(additionalBodyProperties) + } + + fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + body.removeAllAdditionalProperties(keys) + } + + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) + } + + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } + + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } + + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) + } + + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } /** - * Returns the raw JSON value of [billingAddress]. + * Returns an immutable instance of [CustomerUpdateByExternalIdParams]. * - * Unlike [billingAddress], this method doesn't throw if the JSON field has an unexpected - * type. + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .id() + * ``` + * + * @throws IllegalStateException if any required field is unset. */ - @JsonProperty("billing_address") - @ExcludeMissing - fun _billingAddress(): JsonField = billingAddress + fun build(): CustomerUpdateByExternalIdParams = + CustomerUpdateByExternalIdParams( + checkRequired("id", id), + body.build(), + additionalHeaders.build(), + additionalQueryParams.build(), + ) + } + + @JvmSynthetic internal fun _body(): Body = body + + fun _pathParam(index: Int): String = + when (index) { + 0 -> id + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body + private constructor( + private val accountingSyncConfiguration: JsonField, + private val additionalEmails: JsonField>, + private val autoCollection: JsonField, + private val billingAddress: JsonField, + private val currency: JsonField, + private val email: JsonField, + private val emailDelivery: JsonField, + private val externalCustomerId: JsonField, + private val hierarchy: JsonField, + private val metadata: JsonField, + private val name: JsonField, + private val paymentProvider: JsonField, + private val paymentProviderId: JsonField, + private val reportingConfiguration: JsonField, + private val shippingAddress: JsonField, + private val taxConfiguration: JsonField, + private val taxId: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("accounting_sync_configuration") + @ExcludeMissing + accountingSyncConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("additional_emails") + @ExcludeMissing + additionalEmails: JsonField> = JsonMissing.of(), + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("billing_address") + @ExcludeMissing + billingAddress: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("email") @ExcludeMissing email: JsonField = JsonMissing.of(), + @JsonProperty("email_delivery") + @ExcludeMissing + emailDelivery: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + @JsonProperty("hierarchy") + @ExcludeMissing + hierarchy: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("payment_provider") + @ExcludeMissing + paymentProvider: JsonField = JsonMissing.of(), + @JsonProperty("payment_provider_id") + @ExcludeMissing + paymentProviderId: JsonField = JsonMissing.of(), + @JsonProperty("reporting_configuration") + @ExcludeMissing + reportingConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("shipping_address") + @ExcludeMissing + shippingAddress: JsonField = JsonMissing.of(), + @JsonProperty("tax_configuration") + @ExcludeMissing + taxConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("tax_id") @ExcludeMissing taxId: JsonField = JsonMissing.of(), + ) : this( + accountingSyncConfiguration, + additionalEmails, + autoCollection, + billingAddress, + currency, + email, + emailDelivery, + externalCustomerId, + hierarchy, + metadata, + name, + paymentProvider, + paymentProviderId, + reportingConfiguration, + shippingAddress, + taxConfiguration, + taxId, + mutableMapOf(), + ) /** - * Returns the raw JSON value of [currency]. - * - * Unlike [currency], this method doesn't throw if the JSON field has an unexpected type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + fun accountingSyncConfiguration(): Optional = + Optional.ofNullable( + accountingSyncConfiguration.getNullable("accounting_sync_configuration") + ) /** - * Returns the raw JSON value of [email]. + * Additional email addresses for this customer. If populated, these email addresses will be + * CC'd for customer communications. * - * Unlike [email], this method doesn't throw if the JSON field has an unexpected type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("email") @ExcludeMissing fun _email(): JsonField = email + fun additionalEmails(): Optional> = + Optional.ofNullable(additionalEmails.getNullable("additional_emails")) /** - * Returns the raw JSON value of [emailDelivery]. + * Used to determine if invoices for this customer will automatically attempt to charge a + * saved payment method, if available. This parameter defaults to `True` when a payment + * provider is provided on customer creation. * - * Unlike [emailDelivery], this method doesn't throw if the JSON field has an unexpected - * type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("email_delivery") - @ExcludeMissing - fun _emailDelivery(): JsonField = emailDelivery + fun autoCollection(): Optional = + Optional.ofNullable(autoCollection.getNullable("auto_collection")) /** - * Returns the raw JSON value of [externalCustomerId]. - * - * Unlike [externalCustomerId], this method doesn't throw if the JSON field has an - * unexpected type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("external_customer_id") - @ExcludeMissing - fun _externalCustomerId(): JsonField = externalCustomerId + fun billingAddress(): Optional = + Optional.ofNullable(billingAddress.getNullable("billing_address")) /** - * Returns the raw JSON value of [hierarchy]. + * An ISO 4217 currency string used for the customer's invoices and balance. If not set at + * creation time, will be set at subscription creation time. * - * Unlike [hierarchy], this method doesn't throw if the JSON field has an unexpected type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("hierarchy") - @ExcludeMissing - fun _hierarchy(): JsonField = hierarchy + fun currency(): Optional = Optional.ofNullable(currency.getNullable("currency")) /** - * Returns the raw JSON value of [metadata]. + * A valid customer email, to be used for invoicing and notifications. * - * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata + fun email(): Optional = Optional.ofNullable(email.getNullable("email")) /** - * Returns the raw JSON value of [name]. - * - * Unlike [name], this method doesn't throw if the JSON field has an unexpected type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + fun emailDelivery(): Optional = + Optional.ofNullable(emailDelivery.getNullable("email_delivery")) /** - * Returns the raw JSON value of [paymentProvider]. + * The external customer ID. This can only be set if empty and the customer has no past or + * current subscriptions. * - * Unlike [paymentProvider], this method doesn't throw if the JSON field has an unexpected - * type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("payment_provider") - @ExcludeMissing - fun _paymentProvider(): JsonField = paymentProvider + fun externalCustomerId(): Optional = + Optional.ofNullable(externalCustomerId.getNullable("external_customer_id")) /** - * Returns the raw JSON value of [paymentProviderId]. + * The hierarchical relationships for this customer. * - * Unlike [paymentProviderId], this method doesn't throw if the JSON field has an unexpected - * type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("payment_provider_id") - @ExcludeMissing - fun _paymentProviderId(): JsonField = paymentProviderId + fun hierarchy(): Optional = + Optional.ofNullable(hierarchy.getNullable("hierarchy")) /** - * Returns the raw JSON value of [reportingConfiguration]. + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. * - * Unlike [reportingConfiguration], this method doesn't throw if the JSON field has an + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) + + /** + * The full name of the customer + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun name(): Optional = Optional.ofNullable(name.getNullable("name")) + + /** + * This is used for creating charges or invoices in an external system via Orb. When not in + * test mode: + * - the connection must first be configured in the Orb webapp. + * - if the provider is an invoicing provider (`stripe_invoice`, `quickbooks`, `bill.com`, + * `netsuite`), any product mappings must first be configured with the Orb team. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun paymentProvider(): Optional = + Optional.ofNullable(paymentProvider.getNullable("payment_provider")) + + /** + * The ID of this customer in an external payments solution, such as Stripe. This is used + * for creating charges or invoices in the external system via Orb. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun paymentProviderId(): Optional = + Optional.ofNullable(paymentProviderId.getNullable("payment_provider_id")) + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun reportingConfiguration(): Optional = + Optional.ofNullable(reportingConfiguration.getNullable("reporting_configuration")) + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun shippingAddress(): Optional = + Optional.ofNullable(shippingAddress.getNullable("shipping_address")) + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun taxConfiguration(): Optional = + Optional.ofNullable(taxConfiguration.getNullable("tax_configuration")) + + /** + * Tax IDs are commonly required to be displayed on customer invoices, which are added to + * the headers of invoices. + * + * ### Supported Tax ID Countries and Types + * |Country |Type |Description | + * |--------------------|------------|-------------------------------------------------------------------------------------------------------| + * |Andorra |`ad_nrt` |Andorran NRT Number | + * |Argentina |`ar_cuit` |Argentinian Tax ID Number | + * |Australia |`au_abn` |Australian Business Number (AU ABN) | + * |Australia |`au_arn` |Australian Taxation Office Reference Number | + * |Austria |`eu_vat` |European VAT Number | + * |Bahrain |`bh_vat` |Bahraini VAT Number | + * |Belgium |`eu_vat` |European VAT Number | + * |Bolivia |`bo_tin` |Bolivian Tax ID | + * |Brazil |`br_cnpj` |Brazilian CNPJ Number | + * |Brazil |`br_cpf` |Brazilian CPF Number | + * |Bulgaria |`bg_uic` |Bulgaria Unified Identification Code | + * |Bulgaria |`eu_vat` |European VAT Number | + * |Canada |`ca_bn` |Canadian BN | + * |Canada |`ca_gst_hst`|Canadian GST/HST Number | + * |Canada |`ca_pst_bc` |Canadian PST Number (British Columbia) | + * |Canada |`ca_pst_mb` |Canadian PST Number (Manitoba) | + * |Canada |`ca_pst_sk` |Canadian PST Number (Saskatchewan) | + * |Canada |`ca_qst` |Canadian QST Number (Québec) | + * |Chile |`cl_tin` |Chilean TIN | + * |China |`cn_tin` |Chinese Tax ID | + * |Colombia |`co_nit` |Colombian NIT Number | + * |Costa Rica |`cr_tin` |Costa Rican Tax ID | + * |Croatia |`eu_vat` |European VAT Number | + * |Cyprus |`eu_vat` |European VAT Number | + * |Czech Republic |`eu_vat` |European VAT Number | + * |Denmark |`eu_vat` |European VAT Number | + * |Dominican Republic |`do_rcn` |Dominican RCN Number | + * |Ecuador |`ec_ruc` |Ecuadorian RUC Number | + * |Egypt |`eg_tin` |Egyptian Tax Identification Number | + * |El Salvador |`sv_nit` |El Salvadorian NIT Number | + * |Estonia |`eu_vat` |European VAT Number | + * |EU |`eu_oss_vat`|European One Stop Shop VAT Number for non-Union scheme | + * |Finland |`eu_vat` |European VAT Number | + * |France |`eu_vat` |European VAT Number | + * |Georgia |`ge_vat` |Georgian VAT | + * |Germany |`eu_vat` |European VAT Number | + * |Greece |`eu_vat` |European VAT Number | + * |Hong Kong |`hk_br` |Hong Kong BR Number | + * |Hungary |`eu_vat` |European VAT Number | + * |Hungary |`hu_tin` |Hungary Tax Number (adószám) | + * |Iceland |`is_vat` |Icelandic VAT | + * |India |`in_gst` |Indian GST Number | + * |Indonesia |`id_npwp` |Indonesian NPWP Number | + * |Ireland |`eu_vat` |European VAT Number | + * |Israel |`il_vat` |Israel VAT | + * |Italy |`eu_vat` |European VAT Number | + * |Japan |`jp_cn` |Japanese Corporate Number (_Hōjin Bangō_) | + * |Japan |`jp_rn` |Japanese Registered Foreign Businesses' Registration Number (_Tōroku Kokugai Jigyōsha no Tōroku Bangō_)| + * |Japan |`jp_trn` |Japanese Tax Registration Number (_Tōroku Bangō_) | + * |Kazakhstan |`kz_bin` |Kazakhstani Business Identification Number | + * |Kenya |`ke_pin` |Kenya Revenue Authority Personal Identification Number | + * |Latvia |`eu_vat` |European VAT Number | + * |Liechtenstein |`li_uid` |Liechtensteinian UID Number | + * |Lithuania |`eu_vat` |European VAT Number | + * |Luxembourg |`eu_vat` |European VAT Number | + * |Malaysia |`my_frp` |Malaysian FRP Number | + * |Malaysia |`my_itn` |Malaysian ITN | + * |Malaysia |`my_sst` |Malaysian SST Number | + * |Malta |`eu_vat ` |European VAT Number | + * |Mexico |`mx_rfc` |Mexican RFC Number | + * |Netherlands |`eu_vat` |European VAT Number | + * |New Zealand |`nz_gst` |New Zealand GST Number | + * |Nigeria |`ng_tin` |Nigerian Tax Identification Number | + * |Norway |`no_vat` |Norwegian VAT Number | + * |Norway |`no_voec` |Norwegian VAT on e-commerce Number | + * |Oman |`om_vat` |Omani VAT Number | + * |Peru |`pe_ruc` |Peruvian RUC Number | + * |Philippines |`ph_tin ` |Philippines Tax Identification Number | + * |Poland |`eu_vat` |European VAT Number | + * |Portugal |`eu_vat` |European VAT Number | + * |Romania |`eu_vat` |European VAT Number | + * |Romania |`ro_tin` |Romanian Tax ID Number | + * |Russia |`ru_inn` |Russian INN | + * |Russia |`ru_kpp` |Russian KPP | + * |Saudi Arabia |`sa_vat` |Saudi Arabia VAT | + * |Serbia |`rs_pib` |Serbian PIB Number | + * |Singapore |`sg_gst` |Singaporean GST | + * |Singapore |`sg_uen` |Singaporean UEN | + * |Slovakia |`eu_vat` |European VAT Number | + * |Slovenia |`eu_vat` |European VAT Number | + * |Slovenia |`si_tin` |Slovenia Tax Number (davčna številka) | + * |South Africa |`za_vat` |South African VAT Number | + * |South Korea |`kr_brn` |Korean BRN | + * |Spain |`es_cif` |Spanish NIF Number (previously Spanish CIF Number) | + * |Spain |`eu_vat` |European VAT Number | + * |Sweden |`eu_vat` |European VAT Number | + * |Switzerland |`ch_vat` |Switzerland VAT Number | + * |Taiwan |`tw_vat` |Taiwanese VAT | + * |Thailand |`th_vat` |Thai VAT | + * |Turkey |`tr_tin` |Turkish Tax Identification Number | + * |Ukraine |`ua_vat` |Ukrainian VAT | + * |United Arab Emirates|`ae_trn` |United Arab Emirates TRN | + * |United Kingdom |`eu_vat` |Northern Ireland VAT Number | + * |United Kingdom |`gb_vat` |United Kingdom VAT Number | + * |United States |`us_ein` |United States EIN | + * |Uruguay |`uy_ruc` |Uruguayan RUC Number | + * |Venezuela |`ve_rif` |Venezuelan RIF Number | + * |Vietnam |`vn_tin` |Vietnamese Tax ID Number | + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun taxId(): Optional = Optional.ofNullable(taxId.getNullable("tax_id")) + + /** + * Returns the raw JSON value of [accountingSyncConfiguration]. + * + * Unlike [accountingSyncConfiguration], this method doesn't throw if the JSON field has an * unexpected type. */ - @JsonProperty("reporting_configuration") + @JsonProperty("accounting_sync_configuration") @ExcludeMissing - fun _reportingConfiguration(): JsonField = reportingConfiguration + fun _accountingSyncConfiguration(): JsonField = + accountingSyncConfiguration /** - * Returns the raw JSON value of [shippingAddress]. + * Returns the raw JSON value of [additionalEmails]. * - * Unlike [shippingAddress], this method doesn't throw if the JSON field has an unexpected + * Unlike [additionalEmails], this method doesn't throw if the JSON field has an unexpected * type. */ - @JsonProperty("shipping_address") + @JsonProperty("additional_emails") @ExcludeMissing - fun _shippingAddress(): JsonField = shippingAddress + fun _additionalEmails(): JsonField> = additionalEmails /** - * Returns the raw JSON value of [taxConfiguration]. + * Returns the raw JSON value of [autoCollection]. * - * Unlike [taxConfiguration], this method doesn't throw if the JSON field has an unexpected + * Unlike [autoCollection], this method doesn't throw if the JSON field has an unexpected * type. */ - @JsonProperty("tax_configuration") + @JsonProperty("auto_collection") @ExcludeMissing - fun _taxConfiguration(): JsonField = taxConfiguration + fun _autoCollection(): JsonField = autoCollection /** - * Returns the raw JSON value of [taxId]. + * Returns the raw JSON value of [billingAddress]. * - * Unlike [taxId], this method doesn't throw if the JSON field has an unexpected type. + * Unlike [billingAddress], this method doesn't throw if the JSON field has an unexpected + * type. */ - @JsonProperty("tax_id") @ExcludeMissing fun _taxId(): JsonField = taxId - - @JsonAnyGetter + @JsonProperty("billing_address") @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _billingAddress(): JsonField = billingAddress - private var validated: Boolean = false + /** + * Returns the raw JSON value of [currency]. + * + * Unlike [currency], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency - fun validate(): Body = apply { - if (validated) { - return@apply - } + /** + * Returns the raw JSON value of [email]. + * + * Unlike [email], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("email") @ExcludeMissing fun _email(): JsonField = email - accountingSyncConfiguration().ifPresent { it.validate() } - additionalEmails() - autoCollection() - billingAddress().ifPresent { it.validate() } - currency() - email() - emailDelivery() - externalCustomerId() - hierarchy().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - name() - paymentProvider() - paymentProviderId() - reportingConfiguration().ifPresent { it.validate() } - shippingAddress().ifPresent { it.validate() } - taxConfiguration().ifPresent { it.validate() } - taxId().ifPresent { it.validate() } - validated = true + /** + * Returns the raw JSON value of [emailDelivery]. + * + * Unlike [emailDelivery], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("email_delivery") + @ExcludeMissing + fun _emailDelivery(): JsonField = emailDelivery + + /** + * Returns the raw JSON value of [externalCustomerId]. + * + * Unlike [externalCustomerId], this method doesn't throw if the JSON field has an + * unexpected type. + */ + @JsonProperty("external_customer_id") + @ExcludeMissing + fun _externalCustomerId(): JsonField = externalCustomerId + + /** + * Returns the raw JSON value of [hierarchy]. + * + * Unlike [hierarchy], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("hierarchy") + @ExcludeMissing + fun _hierarchy(): JsonField = hierarchy + + /** + * Returns the raw JSON value of [metadata]. + * + * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata + + /** + * Returns the raw JSON value of [name]. + * + * Unlike [name], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + + /** + * Returns the raw JSON value of [paymentProvider]. + * + * Unlike [paymentProvider], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("payment_provider") + @ExcludeMissing + fun _paymentProvider(): JsonField = paymentProvider + + /** + * Returns the raw JSON value of [paymentProviderId]. + * + * Unlike [paymentProviderId], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("payment_provider_id") + @ExcludeMissing + fun _paymentProviderId(): JsonField = paymentProviderId + + /** + * Returns the raw JSON value of [reportingConfiguration]. + * + * Unlike [reportingConfiguration], this method doesn't throw if the JSON field has an + * unexpected type. + */ + @JsonProperty("reporting_configuration") + @ExcludeMissing + fun _reportingConfiguration(): JsonField = reportingConfiguration + + /** + * Returns the raw JSON value of [shippingAddress]. + * + * Unlike [shippingAddress], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("shipping_address") + @ExcludeMissing + fun _shippingAddress(): JsonField = shippingAddress + + /** + * Returns the raw JSON value of [taxConfiguration]. + * + * Unlike [taxConfiguration], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("tax_configuration") + @ExcludeMissing + fun _taxConfiguration(): JsonField = taxConfiguration + + /** + * Returns the raw JSON value of [taxId]. + * + * Unlike [taxId], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("tax_id") @ExcludeMissing fun _taxId(): JsonField = taxId + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -1499,771 +2180,127 @@ private constructor( */ fun taxId(taxId: TaxId?) = taxId(JsonField.ofNullable(taxId)) - /** Alias for calling [Builder.taxId] with `taxId.orElse(null)`. */ - fun taxId(taxId: Optional) = taxId(taxId.getOrNull()) - - /** - * Sets [Builder.taxId] to an arbitrary JSON value. - * - * You should usually call [Builder.taxId] with a well-typed [TaxId] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun taxId(taxId: JsonField) = apply { this.taxId = taxId } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - */ - fun build(): Body = - Body( - accountingSyncConfiguration, - (additionalEmails ?: JsonMissing.of()).map { it.toImmutable() }, - autoCollection, - billingAddress, - currency, - email, - emailDelivery, - externalCustomerId, - hierarchy, - metadata, - name, - paymentProvider, - paymentProviderId, - reportingConfiguration, - shippingAddress, - taxConfiguration, - taxId, - additionalProperties.toImmutable(), - ) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && accountingSyncConfiguration == other.accountingSyncConfiguration && additionalEmails == other.additionalEmails && autoCollection == other.autoCollection && billingAddress == other.billingAddress && currency == other.currency && email == other.email && emailDelivery == other.emailDelivery && externalCustomerId == other.externalCustomerId && hierarchy == other.hierarchy && metadata == other.metadata && name == other.name && paymentProvider == other.paymentProvider && paymentProviderId == other.paymentProviderId && reportingConfiguration == other.reportingConfiguration && shippingAddress == other.shippingAddress && taxConfiguration == other.taxConfiguration && taxId == other.taxId && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(accountingSyncConfiguration, additionalEmails, autoCollection, billingAddress, currency, email, emailDelivery, externalCustomerId, hierarchy, metadata, name, paymentProvider, paymentProviderId, reportingConfiguration, shippingAddress, taxConfiguration, taxId, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{accountingSyncConfiguration=$accountingSyncConfiguration, additionalEmails=$additionalEmails, autoCollection=$autoCollection, billingAddress=$billingAddress, currency=$currency, email=$email, emailDelivery=$emailDelivery, externalCustomerId=$externalCustomerId, hierarchy=$hierarchy, metadata=$metadata, name=$name, paymentProvider=$paymentProvider, paymentProviderId=$paymentProviderId, reportingConfiguration=$reportingConfiguration, shippingAddress=$shippingAddress, taxConfiguration=$taxConfiguration, taxId=$taxId, additionalProperties=$additionalProperties}" - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of - * [CustomerUpdateByExternalIdParams]. - * - * The following fields are required: - * ```java - * .id() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [CustomerUpdateByExternalIdParams]. */ - @NoAutoDetect - class Builder internal constructor() { - - private var id: String? = null - private var body: Body.Builder = Body.builder() - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() - - @JvmSynthetic - internal fun from(customerUpdateByExternalIdParams: CustomerUpdateByExternalIdParams) = - apply { - id = customerUpdateByExternalIdParams.id - body = customerUpdateByExternalIdParams.body.toBuilder() - additionalHeaders = customerUpdateByExternalIdParams.additionalHeaders.toBuilder() - additionalQueryParams = - customerUpdateByExternalIdParams.additionalQueryParams.toBuilder() - } - - fun id(id: String) = apply { this.id = id } - - fun accountingSyncConfiguration(accountingSyncConfiguration: AccountingSyncConfiguration?) = - apply { - body.accountingSyncConfiguration(accountingSyncConfiguration) - } - - /** - * Alias for calling [Builder.accountingSyncConfiguration] with - * `accountingSyncConfiguration.orElse(null)`. - */ - fun accountingSyncConfiguration( - accountingSyncConfiguration: Optional - ) = accountingSyncConfiguration(accountingSyncConfiguration.getOrNull()) - - /** - * Sets [Builder.accountingSyncConfiguration] to an arbitrary JSON value. - * - * You should usually call [Builder.accountingSyncConfiguration] with a well-typed - * [AccountingSyncConfiguration] value instead. This method is primarily for setting the - * field to an undocumented or not yet supported value. - */ - fun accountingSyncConfiguration( - accountingSyncConfiguration: JsonField - ) = apply { body.accountingSyncConfiguration(accountingSyncConfiguration) } - - /** - * Additional email addresses for this customer. If populated, these email addresses will be - * CC'd for customer communications. - */ - fun additionalEmails(additionalEmails: List?) = apply { - body.additionalEmails(additionalEmails) - } - - /** Alias for calling [Builder.additionalEmails] with `additionalEmails.orElse(null)`. */ - fun additionalEmails(additionalEmails: Optional>) = - additionalEmails(additionalEmails.getOrNull()) - - /** - * Sets [Builder.additionalEmails] to an arbitrary JSON value. - * - * You should usually call [Builder.additionalEmails] with a well-typed `List` value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun additionalEmails(additionalEmails: JsonField>) = apply { - body.additionalEmails(additionalEmails) - } - - /** - * Adds a single [String] to [additionalEmails]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addAdditionalEmail(additionalEmail: String) = apply { - body.addAdditionalEmail(additionalEmail) - } - - /** - * Used to determine if invoices for this customer will automatically attempt to charge a - * saved payment method, if available. This parameter defaults to `True` when a payment - * provider is provided on customer creation. - */ - fun autoCollection(autoCollection: Boolean?) = apply { body.autoCollection(autoCollection) } - - /** - * Alias for [Builder.autoCollection]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun autoCollection(autoCollection: Boolean) = autoCollection(autoCollection as Boolean?) - - /** Alias for calling [Builder.autoCollection] with `autoCollection.orElse(null)`. */ - fun autoCollection(autoCollection: Optional) = - autoCollection(autoCollection.getOrNull()) - - /** - * Sets [Builder.autoCollection] to an arbitrary JSON value. - * - * You should usually call [Builder.autoCollection] with a well-typed [Boolean] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun autoCollection(autoCollection: JsonField) = apply { - body.autoCollection(autoCollection) - } - - fun billingAddress(billingAddress: BillingAddress?) = apply { - body.billingAddress(billingAddress) - } - - /** Alias for calling [Builder.billingAddress] with `billingAddress.orElse(null)`. */ - fun billingAddress(billingAddress: Optional) = - billingAddress(billingAddress.getOrNull()) - - /** - * Sets [Builder.billingAddress] to an arbitrary JSON value. - * - * You should usually call [Builder.billingAddress] with a well-typed [BillingAddress] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun billingAddress(billingAddress: JsonField) = apply { - body.billingAddress(billingAddress) - } - - /** - * An ISO 4217 currency string used for the customer's invoices and balance. If not set at - * creation time, will be set at subscription creation time. - */ - fun currency(currency: String?) = apply { body.currency(currency) } - - /** Alias for calling [Builder.currency] with `currency.orElse(null)`. */ - fun currency(currency: Optional) = currency(currency.getOrNull()) - - /** - * Sets [Builder.currency] to an arbitrary JSON value. - * - * You should usually call [Builder.currency] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun currency(currency: JsonField) = apply { body.currency(currency) } - - /** A valid customer email, to be used for invoicing and notifications. */ - fun email(email: String?) = apply { body.email(email) } - - /** Alias for calling [Builder.email] with `email.orElse(null)`. */ - fun email(email: Optional) = email(email.getOrNull()) - - /** - * Sets [Builder.email] to an arbitrary JSON value. - * - * You should usually call [Builder.email] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun email(email: JsonField) = apply { body.email(email) } - - fun emailDelivery(emailDelivery: Boolean?) = apply { body.emailDelivery(emailDelivery) } - - /** - * Alias for [Builder.emailDelivery]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun emailDelivery(emailDelivery: Boolean) = emailDelivery(emailDelivery as Boolean?) - - /** Alias for calling [Builder.emailDelivery] with `emailDelivery.orElse(null)`. */ - fun emailDelivery(emailDelivery: Optional) = - emailDelivery(emailDelivery.getOrNull()) - - /** - * Sets [Builder.emailDelivery] to an arbitrary JSON value. - * - * You should usually call [Builder.emailDelivery] with a well-typed [Boolean] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun emailDelivery(emailDelivery: JsonField) = apply { - body.emailDelivery(emailDelivery) - } - - /** - * The external customer ID. This can only be set if empty and the customer has no past or - * current subscriptions. - */ - fun externalCustomerId(externalCustomerId: String?) = apply { - body.externalCustomerId(externalCustomerId) - } - - /** - * Alias for calling [Builder.externalCustomerId] with `externalCustomerId.orElse(null)`. - */ - fun externalCustomerId(externalCustomerId: Optional) = - externalCustomerId(externalCustomerId.getOrNull()) - - /** - * Sets [Builder.externalCustomerId] to an arbitrary JSON value. - * - * You should usually call [Builder.externalCustomerId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun externalCustomerId(externalCustomerId: JsonField) = apply { - body.externalCustomerId(externalCustomerId) - } - - /** The hierarchical relationships for this customer. */ - fun hierarchy(hierarchy: Hierarchy?) = apply { body.hierarchy(hierarchy) } - - /** Alias for calling [Builder.hierarchy] with `hierarchy.orElse(null)`. */ - fun hierarchy(hierarchy: Optional) = hierarchy(hierarchy.getOrNull()) - - /** - * Sets [Builder.hierarchy] to an arbitrary JSON value. - * - * You should usually call [Builder.hierarchy] with a well-typed [Hierarchy] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun hierarchy(hierarchy: JsonField) = apply { body.hierarchy(hierarchy) } - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. - */ - fun metadata(metadata: Metadata?) = apply { body.metadata(metadata) } - - /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ - fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) - - /** - * Sets [Builder.metadata] to an arbitrary JSON value. - * - * You should usually call [Builder.metadata] with a well-typed [Metadata] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun metadata(metadata: JsonField) = apply { body.metadata(metadata) } - - /** The full name of the customer */ - fun name(name: String?) = apply { body.name(name) } - - /** Alias for calling [Builder.name] with `name.orElse(null)`. */ - fun name(name: Optional) = name(name.getOrNull()) - - /** - * Sets [Builder.name] to an arbitrary JSON value. - * - * You should usually call [Builder.name] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun name(name: JsonField) = apply { body.name(name) } - - /** - * This is used for creating charges or invoices in an external system via Orb. When not in - * test mode: - * - the connection must first be configured in the Orb webapp. - * - if the provider is an invoicing provider (`stripe_invoice`, `quickbooks`, `bill.com`, - * `netsuite`), any product mappings must first be configured with the Orb team. - */ - fun paymentProvider(paymentProvider: PaymentProvider?) = apply { - body.paymentProvider(paymentProvider) - } - - /** Alias for calling [Builder.paymentProvider] with `paymentProvider.orElse(null)`. */ - fun paymentProvider(paymentProvider: Optional) = - paymentProvider(paymentProvider.getOrNull()) - - /** - * Sets [Builder.paymentProvider] to an arbitrary JSON value. - * - * You should usually call [Builder.paymentProvider] with a well-typed [PaymentProvider] - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun paymentProvider(paymentProvider: JsonField) = apply { - body.paymentProvider(paymentProvider) - } - - /** - * The ID of this customer in an external payments solution, such as Stripe. This is used - * for creating charges or invoices in the external system via Orb. - */ - fun paymentProviderId(paymentProviderId: String?) = apply { - body.paymentProviderId(paymentProviderId) - } - - /** Alias for calling [Builder.paymentProviderId] with `paymentProviderId.orElse(null)`. */ - fun paymentProviderId(paymentProviderId: Optional) = - paymentProviderId(paymentProviderId.getOrNull()) - - /** - * Sets [Builder.paymentProviderId] to an arbitrary JSON value. - * - * You should usually call [Builder.paymentProviderId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun paymentProviderId(paymentProviderId: JsonField) = apply { - body.paymentProviderId(paymentProviderId) - } - - fun reportingConfiguration(reportingConfiguration: ReportingConfiguration?) = apply { - body.reportingConfiguration(reportingConfiguration) - } - - /** - * Alias for calling [Builder.reportingConfiguration] with - * `reportingConfiguration.orElse(null)`. - */ - fun reportingConfiguration(reportingConfiguration: Optional) = - reportingConfiguration(reportingConfiguration.getOrNull()) - - /** - * Sets [Builder.reportingConfiguration] to an arbitrary JSON value. - * - * You should usually call [Builder.reportingConfiguration] with a well-typed - * [ReportingConfiguration] value instead. This method is primarily for setting the field to - * an undocumented or not yet supported value. - */ - fun reportingConfiguration(reportingConfiguration: JsonField) = - apply { - body.reportingConfiguration(reportingConfiguration) - } - - fun shippingAddress(shippingAddress: ShippingAddress?) = apply { - body.shippingAddress(shippingAddress) - } - - /** Alias for calling [Builder.shippingAddress] with `shippingAddress.orElse(null)`. */ - fun shippingAddress(shippingAddress: Optional) = - shippingAddress(shippingAddress.getOrNull()) - - /** - * Sets [Builder.shippingAddress] to an arbitrary JSON value. - * - * You should usually call [Builder.shippingAddress] with a well-typed [ShippingAddress] - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun shippingAddress(shippingAddress: JsonField) = apply { - body.shippingAddress(shippingAddress) - } - - fun taxConfiguration(taxConfiguration: TaxConfiguration?) = apply { - body.taxConfiguration(taxConfiguration) - } - - /** Alias for calling [Builder.taxConfiguration] with `taxConfiguration.orElse(null)`. */ - fun taxConfiguration(taxConfiguration: Optional) = - taxConfiguration(taxConfiguration.getOrNull()) - - /** - * Sets [Builder.taxConfiguration] to an arbitrary JSON value. - * - * You should usually call [Builder.taxConfiguration] with a well-typed [TaxConfiguration] - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun taxConfiguration(taxConfiguration: JsonField) = apply { - body.taxConfiguration(taxConfiguration) - } - - /** - * Alias for calling [taxConfiguration] with `TaxConfiguration.ofNewAvalara(newAvalara)`. - */ - fun taxConfiguration(newAvalara: TaxConfiguration.NewAvalaraTaxConfiguration) = apply { - body.taxConfiguration(newAvalara) - } - - /** - * Alias for calling [taxConfiguration] with the following: - * ```java - * TaxConfiguration.NewAvalaraTaxConfiguration.builder() - * .taxProvider(CustomerUpdateByExternalIdParams.TaxConfiguration.NewAvalaraTaxConfiguration.TaxProvider.AVALARA) - * .taxExempt(taxExempt) - * .build() - * ``` - */ - fun newAvalaraTaxConfiguration(taxExempt: Boolean) = apply { - body.newAvalaraTaxConfiguration(taxExempt) - } - - /** Alias for calling [taxConfiguration] with `TaxConfiguration.ofNewTaxJar(newTaxJar)`. */ - fun taxConfiguration(newTaxJar: TaxConfiguration.NewTaxJarConfiguration) = apply { - body.taxConfiguration(newTaxJar) - } - - /** - * Alias for calling [taxConfiguration] with the following: - * ```java - * TaxConfiguration.NewTaxJarConfiguration.builder() - * .taxProvider(CustomerUpdateByExternalIdParams.TaxConfiguration.NewTaxJarConfiguration.TaxProvider.TAXJAR) - * .taxExempt(taxExempt) - * .build() - * ``` - */ - fun newTaxJarTaxConfiguration(taxExempt: Boolean) = apply { - body.newTaxJarTaxConfiguration(taxExempt) - } - - /** - * Tax IDs are commonly required to be displayed on customer invoices, which are added to - * the headers of invoices. - * - * ### Supported Tax ID Countries and Types - * |Country |Type |Description | - * |--------------------|------------|-------------------------------------------------------------------------------------------------------| - * |Andorra |`ad_nrt` |Andorran NRT Number | - * |Argentina |`ar_cuit` |Argentinian Tax ID Number | - * |Australia |`au_abn` |Australian Business Number (AU ABN) | - * |Australia |`au_arn` |Australian Taxation Office Reference Number | - * |Austria |`eu_vat` |European VAT Number | - * |Bahrain |`bh_vat` |Bahraini VAT Number | - * |Belgium |`eu_vat` |European VAT Number | - * |Bolivia |`bo_tin` |Bolivian Tax ID | - * |Brazil |`br_cnpj` |Brazilian CNPJ Number | - * |Brazil |`br_cpf` |Brazilian CPF Number | - * |Bulgaria |`bg_uic` |Bulgaria Unified Identification Code | - * |Bulgaria |`eu_vat` |European VAT Number | - * |Canada |`ca_bn` |Canadian BN | - * |Canada |`ca_gst_hst`|Canadian GST/HST Number | - * |Canada |`ca_pst_bc` |Canadian PST Number (British Columbia) | - * |Canada |`ca_pst_mb` |Canadian PST Number (Manitoba) | - * |Canada |`ca_pst_sk` |Canadian PST Number (Saskatchewan) | - * |Canada |`ca_qst` |Canadian QST Number (Québec) | - * |Chile |`cl_tin` |Chilean TIN | - * |China |`cn_tin` |Chinese Tax ID | - * |Colombia |`co_nit` |Colombian NIT Number | - * |Costa Rica |`cr_tin` |Costa Rican Tax ID | - * |Croatia |`eu_vat` |European VAT Number | - * |Cyprus |`eu_vat` |European VAT Number | - * |Czech Republic |`eu_vat` |European VAT Number | - * |Denmark |`eu_vat` |European VAT Number | - * |Dominican Republic |`do_rcn` |Dominican RCN Number | - * |Ecuador |`ec_ruc` |Ecuadorian RUC Number | - * |Egypt |`eg_tin` |Egyptian Tax Identification Number | - * |El Salvador |`sv_nit` |El Salvadorian NIT Number | - * |Estonia |`eu_vat` |European VAT Number | - * |EU |`eu_oss_vat`|European One Stop Shop VAT Number for non-Union scheme | - * |Finland |`eu_vat` |European VAT Number | - * |France |`eu_vat` |European VAT Number | - * |Georgia |`ge_vat` |Georgian VAT | - * |Germany |`eu_vat` |European VAT Number | - * |Greece |`eu_vat` |European VAT Number | - * |Hong Kong |`hk_br` |Hong Kong BR Number | - * |Hungary |`eu_vat` |European VAT Number | - * |Hungary |`hu_tin` |Hungary Tax Number (adószám) | - * |Iceland |`is_vat` |Icelandic VAT | - * |India |`in_gst` |Indian GST Number | - * |Indonesia |`id_npwp` |Indonesian NPWP Number | - * |Ireland |`eu_vat` |European VAT Number | - * |Israel |`il_vat` |Israel VAT | - * |Italy |`eu_vat` |European VAT Number | - * |Japan |`jp_cn` |Japanese Corporate Number (_Hōjin Bangō_) | - * |Japan |`jp_rn` |Japanese Registered Foreign Businesses' Registration Number (_Tōroku Kokugai Jigyōsha no Tōroku Bangō_)| - * |Japan |`jp_trn` |Japanese Tax Registration Number (_Tōroku Bangō_) | - * |Kazakhstan |`kz_bin` |Kazakhstani Business Identification Number | - * |Kenya |`ke_pin` |Kenya Revenue Authority Personal Identification Number | - * |Latvia |`eu_vat` |European VAT Number | - * |Liechtenstein |`li_uid` |Liechtensteinian UID Number | - * |Lithuania |`eu_vat` |European VAT Number | - * |Luxembourg |`eu_vat` |European VAT Number | - * |Malaysia |`my_frp` |Malaysian FRP Number | - * |Malaysia |`my_itn` |Malaysian ITN | - * |Malaysia |`my_sst` |Malaysian SST Number | - * |Malta |`eu_vat ` |European VAT Number | - * |Mexico |`mx_rfc` |Mexican RFC Number | - * |Netherlands |`eu_vat` |European VAT Number | - * |New Zealand |`nz_gst` |New Zealand GST Number | - * |Nigeria |`ng_tin` |Nigerian Tax Identification Number | - * |Norway |`no_vat` |Norwegian VAT Number | - * |Norway |`no_voec` |Norwegian VAT on e-commerce Number | - * |Oman |`om_vat` |Omani VAT Number | - * |Peru |`pe_ruc` |Peruvian RUC Number | - * |Philippines |`ph_tin ` |Philippines Tax Identification Number | - * |Poland |`eu_vat` |European VAT Number | - * |Portugal |`eu_vat` |European VAT Number | - * |Romania |`eu_vat` |European VAT Number | - * |Romania |`ro_tin` |Romanian Tax ID Number | - * |Russia |`ru_inn` |Russian INN | - * |Russia |`ru_kpp` |Russian KPP | - * |Saudi Arabia |`sa_vat` |Saudi Arabia VAT | - * |Serbia |`rs_pib` |Serbian PIB Number | - * |Singapore |`sg_gst` |Singaporean GST | - * |Singapore |`sg_uen` |Singaporean UEN | - * |Slovakia |`eu_vat` |European VAT Number | - * |Slovenia |`eu_vat` |European VAT Number | - * |Slovenia |`si_tin` |Slovenia Tax Number (davčna številka) | - * |South Africa |`za_vat` |South African VAT Number | - * |South Korea |`kr_brn` |Korean BRN | - * |Spain |`es_cif` |Spanish NIF Number (previously Spanish CIF Number) | - * |Spain |`eu_vat` |European VAT Number | - * |Sweden |`eu_vat` |European VAT Number | - * |Switzerland |`ch_vat` |Switzerland VAT Number | - * |Taiwan |`tw_vat` |Taiwanese VAT | - * |Thailand |`th_vat` |Thai VAT | - * |Turkey |`tr_tin` |Turkish Tax Identification Number | - * |Ukraine |`ua_vat` |Ukrainian VAT | - * |United Arab Emirates|`ae_trn` |United Arab Emirates TRN | - * |United Kingdom |`eu_vat` |Northern Ireland VAT Number | - * |United Kingdom |`gb_vat` |United Kingdom VAT Number | - * |United States |`us_ein` |United States EIN | - * |Uruguay |`uy_ruc` |Uruguayan RUC Number | - * |Venezuela |`ve_rif` |Venezuelan RIF Number | - * |Vietnam |`vn_tin` |Vietnamese Tax ID Number | - */ - fun taxId(taxId: TaxId?) = apply { body.taxId(taxId) } - - /** Alias for calling [Builder.taxId] with `taxId.orElse(null)`. */ - fun taxId(taxId: Optional) = taxId(taxId.getOrNull()) - - /** - * Sets [Builder.taxId] to an arbitrary JSON value. - * - * You should usually call [Builder.taxId] with a well-typed [TaxId] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun taxId(taxId: JsonField) = apply { body.taxId(taxId) } - - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { - body.additionalProperties(additionalBodyProperties) - } - - fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - body.putAdditionalProperty(key, value) - } - - fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = - apply { - body.putAllAdditionalProperties(additionalBodyProperties) - } - - fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } - - fun removeAllAdditionalBodyProperties(keys: Set) = apply { - body.removeAllAdditionalProperties(keys) - } - - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } - - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } - - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } - - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } - - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } - - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } - - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } - - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } - - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** Alias for calling [Builder.taxId] with `taxId.orElse(null)`. */ + fun taxId(taxId: Optional) = taxId(taxId.getOrNull()) - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** + * Sets [Builder.taxId] to an arbitrary JSON value. + * + * You should usually call [Builder.taxId] with a well-typed [TaxId] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun taxId(taxId: JsonField) = apply { this.taxId = taxId } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + */ + fun build(): Body = + Body( + accountingSyncConfiguration, + (additionalEmails ?: JsonMissing.of()).map { it.toImmutable() }, + autoCollection, + billingAddress, + currency, + email, + emailDelivery, + externalCustomerId, + hierarchy, + metadata, + name, + paymentProvider, + paymentProviderId, + reportingConfiguration, + shippingAddress, + taxConfiguration, + taxId, + additionalProperties.toMutableMap(), + ) } - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } + private var validated: Boolean = false - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) + fun validate(): Body = apply { + if (validated) { + return@apply } - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) + accountingSyncConfiguration().ifPresent { it.validate() } + additionalEmails() + autoCollection() + billingAddress().ifPresent { it.validate() } + currency() + email() + emailDelivery() + externalCustomerId() + hierarchy().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + name() + paymentProvider() + paymentProviderId() + reportingConfiguration().ifPresent { it.validate() } + shippingAddress().ifPresent { it.validate() } + taxConfiguration().ifPresent { it.validate() } + taxId().ifPresent { it.validate() } + validated = true } - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + return /* spotless:off */ other is Body && accountingSyncConfiguration == other.accountingSyncConfiguration && additionalEmails == other.additionalEmails && autoCollection == other.autoCollection && billingAddress == other.billingAddress && currency == other.currency && email == other.email && emailDelivery == other.emailDelivery && externalCustomerId == other.externalCustomerId && hierarchy == other.hierarchy && metadata == other.metadata && name == other.name && paymentProvider == other.paymentProvider && paymentProviderId == other.paymentProviderId && reportingConfiguration == other.reportingConfiguration && shippingAddress == other.shippingAddress && taxConfiguration == other.taxConfiguration && taxId == other.taxId && additionalProperties == other.additionalProperties /* spotless:on */ } - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(accountingSyncConfiguration, additionalEmails, autoCollection, billingAddress, currency, email, emailDelivery, externalCustomerId, hierarchy, metadata, name, paymentProvider, paymentProviderId, reportingConfiguration, shippingAddress, taxConfiguration, taxId, additionalProperties) } + /* spotless:on */ - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) - } + override fun hashCode(): Int = hashCode - /** - * Returns an immutable instance of [CustomerUpdateByExternalIdParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .id() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): CustomerUpdateByExternalIdParams = - CustomerUpdateByExternalIdParams( - checkRequired("id", id), - body.build(), - additionalHeaders.build(), - additionalQueryParams.build(), - ) + override fun toString() = + "Body{accountingSyncConfiguration=$accountingSyncConfiguration, additionalEmails=$additionalEmails, autoCollection=$autoCollection, billingAddress=$billingAddress, currency=$currency, email=$email, emailDelivery=$emailDelivery, externalCustomerId=$externalCustomerId, hierarchy=$hierarchy, metadata=$metadata, name=$name, paymentProvider=$paymentProvider, paymentProviderId=$paymentProviderId, reportingConfiguration=$reportingConfiguration, shippingAddress=$shippingAddress, taxConfiguration=$taxConfiguration, taxId=$taxId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class AccountingSyncConfiguration - @JsonCreator private constructor( - @JsonProperty("accounting_providers") - @ExcludeMissing - private val accountingProviders: JsonField> = JsonMissing.of(), - @JsonProperty("excluded") - @ExcludeMissing - private val excluded: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val accountingProviders: JsonField>, + private val excluded: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("accounting_providers") + @ExcludeMissing + accountingProviders: JsonField> = JsonMissing.of(), + @JsonProperty("excluded") + @ExcludeMissing + excluded: JsonField = JsonMissing.of(), + ) : this(accountingProviders, excluded, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -2294,21 +2331,15 @@ private constructor( */ @JsonProperty("excluded") @ExcludeMissing fun _excluded(): JsonField = excluded + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AccountingSyncConfiguration = apply { - if (validated) { - return@apply - } - - accountingProviders().ifPresent { it.forEach { it.validate() } } - excluded() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2420,24 +2451,39 @@ private constructor( AccountingSyncConfiguration( (accountingProviders ?: JsonMissing.of()).map { it.toImmutable() }, excluded, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): AccountingSyncConfiguration = apply { + if (validated) { + return@apply + } + + accountingProviders().ifPresent { it.forEach { it.validate() } } + excluded() + validated = true + } + class AccountingProvider - @JsonCreator private constructor( - @JsonProperty("external_provider_id") - @ExcludeMissing - private val externalProviderId: JsonField = JsonMissing.of(), - @JsonProperty("provider_type") - @ExcludeMissing - private val providerType: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val externalProviderId: JsonField, + private val providerType: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("external_provider_id") + @ExcludeMissing + externalProviderId: JsonField = JsonMissing.of(), + @JsonProperty("provider_type") + @ExcludeMissing + providerType: JsonField = JsonMissing.of(), + ) : this(externalProviderId, providerType, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2473,21 +2519,15 @@ private constructor( @ExcludeMissing fun _providerType(): JsonField = providerType + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AccountingProvider = apply { - if (validated) { - return@apply - } - - externalProviderId() - providerType() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2585,10 +2625,22 @@ private constructor( AccountingProvider( checkRequired("externalProviderId", externalProviderId), checkRequired("providerType", providerType), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AccountingProvider = apply { + if (validated) { + return@apply + } + + externalProviderId() + providerType() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2625,32 +2677,29 @@ private constructor( "AccountingSyncConfiguration{accountingProviders=$accountingProviders, excluded=$excluded, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingAddress - @JsonCreator private constructor( - @JsonProperty("city") - @ExcludeMissing - private val city: JsonField = JsonMissing.of(), - @JsonProperty("country") - @ExcludeMissing - private val country: JsonField = JsonMissing.of(), - @JsonProperty("line1") - @ExcludeMissing - private val line1: JsonField = JsonMissing.of(), - @JsonProperty("line2") - @ExcludeMissing - private val line2: JsonField = JsonMissing.of(), - @JsonProperty("postal_code") - @ExcludeMissing - private val postalCode: JsonField = JsonMissing.of(), - @JsonProperty("state") - @ExcludeMissing - private val state: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val city: JsonField, + private val country: JsonField, + private val line1: JsonField, + private val line2: JsonField, + private val postalCode: JsonField, + private val state: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("city") @ExcludeMissing city: JsonField = JsonMissing.of(), + @JsonProperty("country") @ExcludeMissing country: JsonField = JsonMissing.of(), + @JsonProperty("line1") @ExcludeMissing line1: JsonField = JsonMissing.of(), + @JsonProperty("line2") @ExcludeMissing line2: JsonField = JsonMissing.of(), + @JsonProperty("postal_code") + @ExcludeMissing + postalCode: JsonField = JsonMissing.of(), + @JsonProperty("state") @ExcludeMissing state: JsonField = JsonMissing.of(), + ) : this(city, country, line1, line2, postalCode, state, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -2732,25 +2781,15 @@ private constructor( */ @JsonProperty("state") @ExcludeMissing fun _state(): JsonField = state + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingAddress = apply { - if (validated) { - return@apply - } - - city() - country() - line1() - line2() - postalCode() - state() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2898,10 +2937,26 @@ private constructor( line2, postalCode, state, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingAddress = apply { + if (validated) { + return@apply + } + + city() + country() + line1() + line2() + postalCode() + state() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2921,20 +2976,23 @@ private constructor( } /** The hierarchical relationships for this customer. */ - @NoAutoDetect class Hierarchy - @JsonCreator private constructor( - @JsonProperty("child_customer_ids") - @ExcludeMissing - private val childCustomerIds: JsonField> = JsonMissing.of(), - @JsonProperty("parent_customer_id") - @ExcludeMissing - private val parentCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val childCustomerIds: JsonField>, + private val parentCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("child_customer_ids") + @ExcludeMissing + childCustomerIds: JsonField> = JsonMissing.of(), + @JsonProperty("parent_customer_id") + @ExcludeMissing + parentCustomerId: JsonField = JsonMissing.of(), + ) : this(childCustomerIds, parentCustomerId, mutableMapOf()) + /** * A list of child customer IDs to add to the hierarchy. The desired child customers must * not already be part of another hierarchy. @@ -2975,21 +3033,15 @@ private constructor( @ExcludeMissing fun _parentCustomerId(): JsonField = parentCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Hierarchy = apply { - if (validated) { - return@apply - } - - childCustomerIds() - parentCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3095,10 +3147,22 @@ private constructor( Hierarchy( (childCustomerIds ?: JsonMissing.of()).map { it.toImmutable() }, parentCustomerId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Hierarchy = apply { + if (validated) { + return@apply + } + + childCustomerIds() + parentCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -3122,27 +3186,20 @@ private constructor( * the value to `null`, and the entire metadata mapping can be cleared by setting `metadata` to * `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3186,7 +3243,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -3332,17 +3399,17 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ReportingConfiguration - @JsonCreator private constructor( - @JsonProperty("exempt") - @ExcludeMissing - private val exempt: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val exempt: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("exempt") @ExcludeMissing exempt: JsonField = JsonMissing.of() + ) : this(exempt, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -3356,20 +3423,15 @@ private constructor( */ @JsonProperty("exempt") @ExcludeMissing fun _exempt(): JsonField = exempt + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ReportingConfiguration = apply { - if (validated) { - return@apply - } - - exempt() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3443,10 +3505,21 @@ private constructor( fun build(): ReportingConfiguration = ReportingConfiguration( checkRequired("exempt", exempt), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): ReportingConfiguration = apply { + if (validated) { + return@apply + } + + exempt() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -3465,32 +3538,29 @@ private constructor( "ReportingConfiguration{exempt=$exempt, additionalProperties=$additionalProperties}" } - @NoAutoDetect class ShippingAddress - @JsonCreator private constructor( - @JsonProperty("city") - @ExcludeMissing - private val city: JsonField = JsonMissing.of(), - @JsonProperty("country") - @ExcludeMissing - private val country: JsonField = JsonMissing.of(), - @JsonProperty("line1") - @ExcludeMissing - private val line1: JsonField = JsonMissing.of(), - @JsonProperty("line2") - @ExcludeMissing - private val line2: JsonField = JsonMissing.of(), - @JsonProperty("postal_code") - @ExcludeMissing - private val postalCode: JsonField = JsonMissing.of(), - @JsonProperty("state") - @ExcludeMissing - private val state: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val city: JsonField, + private val country: JsonField, + private val line1: JsonField, + private val line2: JsonField, + private val postalCode: JsonField, + private val state: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("city") @ExcludeMissing city: JsonField = JsonMissing.of(), + @JsonProperty("country") @ExcludeMissing country: JsonField = JsonMissing.of(), + @JsonProperty("line1") @ExcludeMissing line1: JsonField = JsonMissing.of(), + @JsonProperty("line2") @ExcludeMissing line2: JsonField = JsonMissing.of(), + @JsonProperty("postal_code") + @ExcludeMissing + postalCode: JsonField = JsonMissing.of(), + @JsonProperty("state") @ExcludeMissing state: JsonField = JsonMissing.of(), + ) : this(city, country, line1, line2, postalCode, state, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -3572,25 +3642,15 @@ private constructor( */ @JsonProperty("state") @ExcludeMissing fun _state(): JsonField = state + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ShippingAddress = apply { - if (validated) { - return@apply - } - - city() - country() - line1() - line2() - postalCode() - state() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3738,10 +3798,26 @@ private constructor( line2, postalCode, state, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): ShippingAddress = apply { + if (validated) { + return@apply + } + + city() + country() + line1() + line2() + postalCode() + state() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -3912,23 +3988,27 @@ private constructor( } } - @NoAutoDetect class NewAvalaraTaxConfiguration - @JsonCreator private constructor( - @JsonProperty("tax_exempt") - @ExcludeMissing - private val taxExempt: JsonField = JsonMissing.of(), - @JsonProperty("tax_provider") - @ExcludeMissing - private val taxProvider: JsonField = JsonMissing.of(), - @JsonProperty("tax_exemption_code") - @ExcludeMissing - private val taxExemptionCode: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val taxExempt: JsonField, + private val taxProvider: JsonField, + private val taxExemptionCode: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tax_exempt") + @ExcludeMissing + taxExempt: JsonField = JsonMissing.of(), + @JsonProperty("tax_provider") + @ExcludeMissing + taxProvider: JsonField = JsonMissing.of(), + @JsonProperty("tax_exemption_code") + @ExcludeMissing + taxExemptionCode: JsonField = JsonMissing.of(), + ) : this(taxExempt, taxProvider, taxExemptionCode, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3980,22 +4060,15 @@ private constructor( @ExcludeMissing fun _taxExemptionCode(): JsonField = taxExemptionCode + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewAvalaraTaxConfiguration = apply { - if (validated) { - return@apply - } - - taxExempt() - taxProvider() - taxExemptionCode() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4116,10 +4189,23 @@ private constructor( checkRequired("taxExempt", taxExempt), checkRequired("taxProvider", taxProvider), taxExemptionCode, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewAvalaraTaxConfiguration = apply { + if (validated) { + return@apply + } + + taxExempt() + taxProvider() + taxExemptionCode() + validated = true + } + class TaxProvider @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4237,20 +4323,23 @@ private constructor( "NewAvalaraTaxConfiguration{taxExempt=$taxExempt, taxProvider=$taxProvider, taxExemptionCode=$taxExemptionCode, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewTaxJarConfiguration - @JsonCreator private constructor( - @JsonProperty("tax_exempt") - @ExcludeMissing - private val taxExempt: JsonField = JsonMissing.of(), - @JsonProperty("tax_provider") - @ExcludeMissing - private val taxProvider: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val taxExempt: JsonField, + private val taxProvider: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tax_exempt") + @ExcludeMissing + taxExempt: JsonField = JsonMissing.of(), + @JsonProperty("tax_provider") + @ExcludeMissing + taxProvider: JsonField = JsonMissing.of(), + ) : this(taxExempt, taxProvider, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4285,21 +4374,15 @@ private constructor( @ExcludeMissing fun _taxProvider(): JsonField = taxProvider + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewTaxJarConfiguration = apply { - if (validated) { - return@apply - } - - taxExempt() - taxProvider() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4396,10 +4479,22 @@ private constructor( NewTaxJarConfiguration( checkRequired("taxExempt", taxExempt), checkRequired("taxProvider", taxProvider), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewTaxJarConfiguration = apply { + if (validated) { + return@apply + } + + taxExempt() + taxProvider() + validated = true + } + class TaxProvider @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4624,21 +4719,21 @@ private constructor( * |Venezuela |`ve_rif` |Venezuelan RIF Number | * |Vietnam |`vn_tin` |Vietnamese Tax ID Number | */ - @NoAutoDetect class TaxId - @JsonCreator private constructor( - @JsonProperty("country") - @ExcludeMissing - private val country: JsonField = JsonMissing.of(), - @JsonProperty("type") @ExcludeMissing private val type: JsonField = JsonMissing.of(), - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val country: JsonField, + private val type: JsonField, + private val value: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("country") @ExcludeMissing country: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + @JsonProperty("value") @ExcludeMissing value: JsonField = JsonMissing.of(), + ) : this(country, type, value, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -4678,22 +4773,15 @@ private constructor( */ @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TaxId = apply { - if (validated) { - return@apply - } - - country() - type() - value() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4799,10 +4887,23 @@ private constructor( checkRequired("country", country), checkRequired("type", type), checkRequired("value", value), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): TaxId = apply { + if (validated) { + return@apply + } + + country() + type() + value() + validated = true + } + class Country @JsonCreator private constructor(private val value: JsonField) : Enum { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateParams.kt index 19b76c87..4b04690d 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateParams.kt @@ -20,16 +20,15 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -423,219 +422,418 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body + fun toBuilder() = Builder().from(this) - fun _pathParam(index: Int): String = - when (index) { - 0 -> customerId - else -> "" + companion object { + + /** + * Returns a mutable builder for constructing an instance of [CustomerUpdateParams]. + * + * The following fields are required: + * ```java + * .customerId() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [CustomerUpdateParams]. */ + class Builder internal constructor() { + + private var customerId: String? = null + private var body: Body.Builder = Body.builder() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from(customerUpdateParams: CustomerUpdateParams) = apply { + customerId = customerUpdateParams.customerId + body = customerUpdateParams.body.toBuilder() + additionalHeaders = customerUpdateParams.additionalHeaders.toBuilder() + additionalQueryParams = customerUpdateParams.additionalQueryParams.toBuilder() } - override fun _headers(): Headers = additionalHeaders + fun customerId(customerId: String) = apply { this.customerId = customerId } - override fun _queryParams(): QueryParams = additionalQueryParams + fun accountingSyncConfiguration(accountingSyncConfiguration: AccountingSyncConfiguration?) = + apply { + body.accountingSyncConfiguration(accountingSyncConfiguration) + } - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("accounting_sync_configuration") - @ExcludeMissing - private val accountingSyncConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("additional_emails") - @ExcludeMissing - private val additionalEmails: JsonField> = JsonMissing.of(), - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("billing_address") - @ExcludeMissing - private val billingAddress: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("email") - @ExcludeMissing - private val email: JsonField = JsonMissing.of(), - @JsonProperty("email_delivery") - @ExcludeMissing - private val emailDelivery: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonProperty("hierarchy") - @ExcludeMissing - private val hierarchy: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("payment_provider") - @ExcludeMissing - private val paymentProvider: JsonField = JsonMissing.of(), - @JsonProperty("payment_provider_id") - @ExcludeMissing - private val paymentProviderId: JsonField = JsonMissing.of(), - @JsonProperty("reporting_configuration") - @ExcludeMissing - private val reportingConfiguration: JsonField = JsonMissing.of(), - @JsonProperty("shipping_address") - @ExcludeMissing - private val shippingAddress: JsonField = JsonMissing.of(), - @JsonProperty("tax_configuration") - @ExcludeMissing - private val taxConfiguration: JsonField = JsonMissing.of(), - @JsonProperty("tax_id") - @ExcludeMissing - private val taxId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { + /** + * Alias for calling [Builder.accountingSyncConfiguration] with + * `accountingSyncConfiguration.orElse(null)`. + */ + fun accountingSyncConfiguration( + accountingSyncConfiguration: Optional + ) = accountingSyncConfiguration(accountingSyncConfiguration.getOrNull()) /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Sets [Builder.accountingSyncConfiguration] to an arbitrary JSON value. + * + * You should usually call [Builder.accountingSyncConfiguration] with a well-typed + * [AccountingSyncConfiguration] value instead. This method is primarily for setting the + * field to an undocumented or not yet supported value. */ - fun accountingSyncConfiguration(): Optional = - Optional.ofNullable( - accountingSyncConfiguration.getNullable("accounting_sync_configuration") - ) + fun accountingSyncConfiguration( + accountingSyncConfiguration: JsonField + ) = apply { body.accountingSyncConfiguration(accountingSyncConfiguration) } /** * Additional email addresses for this customer. If populated, these email addresses will be * CC'd for customer communications. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). */ - fun additionalEmails(): Optional> = - Optional.ofNullable(additionalEmails.getNullable("additional_emails")) + fun additionalEmails(additionalEmails: List?) = apply { + body.additionalEmails(additionalEmails) + } + + /** Alias for calling [Builder.additionalEmails] with `additionalEmails.orElse(null)`. */ + fun additionalEmails(additionalEmails: Optional>) = + additionalEmails(additionalEmails.getOrNull()) /** - * Used to determine if invoices for this customer will automatically attempt to charge a - * saved payment method, if available. This parameter defaults to `True` when a payment - * provider is provided on customer creation. + * Sets [Builder.additionalEmails] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.additionalEmails] with a well-typed `List` value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun autoCollection(): Optional = - Optional.ofNullable(autoCollection.getNullable("auto_collection")) + fun additionalEmails(additionalEmails: JsonField>) = apply { + body.additionalEmails(additionalEmails) + } /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Adds a single [String] to [additionalEmails]. + * + * @throws IllegalStateException if the field was previously set to a non-list. */ - fun billingAddress(): Optional = - Optional.ofNullable(billingAddress.getNullable("billing_address")) + fun addAdditionalEmail(additionalEmail: String) = apply { + body.addAdditionalEmail(additionalEmail) + } /** - * An ISO 4217 currency string used for the customer's invoices and balance. If not set at - * creation time, will be set at subscription creation time. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Used to determine if invoices for this customer will automatically attempt to charge a + * saved payment method, if available. This parameter defaults to `True` when a payment + * provider is provided on customer creation. */ - fun currency(): Optional = Optional.ofNullable(currency.getNullable("currency")) + fun autoCollection(autoCollection: Boolean?) = apply { body.autoCollection(autoCollection) } /** - * A valid customer email, to be used for invoicing and notifications. + * Alias for [Builder.autoCollection]. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * This unboxed primitive overload exists for backwards compatibility. */ - fun email(): Optional = Optional.ofNullable(email.getNullable("email")) + fun autoCollection(autoCollection: Boolean) = autoCollection(autoCollection as Boolean?) - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun emailDelivery(): Optional = - Optional.ofNullable(emailDelivery.getNullable("email_delivery")) + /** Alias for calling [Builder.autoCollection] with `autoCollection.orElse(null)`. */ + fun autoCollection(autoCollection: Optional) = + autoCollection(autoCollection.getOrNull()) /** - * The external customer ID. This can only be set if empty and the customer has no past or - * current subscriptions. + * Sets [Builder.autoCollection] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.autoCollection] with a well-typed [Boolean] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun externalCustomerId(): Optional = - Optional.ofNullable(externalCustomerId.getNullable("external_customer_id")) + fun autoCollection(autoCollection: JsonField) = apply { + body.autoCollection(autoCollection) + } + + fun billingAddress(billingAddress: BillingAddress?) = apply { + body.billingAddress(billingAddress) + } + + /** Alias for calling [Builder.billingAddress] with `billingAddress.orElse(null)`. */ + fun billingAddress(billingAddress: Optional) = + billingAddress(billingAddress.getOrNull()) /** - * The hierarchical relationships for this customer. + * Sets [Builder.billingAddress] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.billingAddress] with a well-typed [BillingAddress] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun hierarchy(): Optional = - Optional.ofNullable(hierarchy.getNullable("hierarchy")) + fun billingAddress(billingAddress: JsonField) = apply { + body.billingAddress(billingAddress) + } /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * An ISO 4217 currency string used for the customer's invoices and balance. If not set at + * creation time, will be set at subscription creation time. */ - fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) + fun currency(currency: String?) = apply { body.currency(currency) } + + /** Alias for calling [Builder.currency] with `currency.orElse(null)`. */ + fun currency(currency: Optional) = currency(currency.getOrNull()) /** - * The full name of the customer + * Sets [Builder.currency] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.currency] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - fun name(): Optional = Optional.ofNullable(name.getNullable("name")) + fun currency(currency: JsonField) = apply { body.currency(currency) } + + /** A valid customer email, to be used for invoicing and notifications. */ + fun email(email: String?) = apply { body.email(email) } + + /** Alias for calling [Builder.email] with `email.orElse(null)`. */ + fun email(email: Optional) = email(email.getOrNull()) /** - * This is used for creating charges or invoices in an external system via Orb. When not in - * test mode: - * - the connection must first be configured in the Orb webapp. - * - if the provider is an invoicing provider (`stripe_invoice`, `quickbooks`, `bill.com`, - * `netsuite`), any product mappings must first be configured with the Orb team. + * Sets [Builder.email] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.email] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - fun paymentProvider(): Optional = - Optional.ofNullable(paymentProvider.getNullable("payment_provider")) + fun email(email: JsonField) = apply { body.email(email) } + + fun emailDelivery(emailDelivery: Boolean?) = apply { body.emailDelivery(emailDelivery) } /** - * The ID of this customer in an external payments solution, such as Stripe. This is used - * for creating charges or invoices in the external system via Orb. + * Alias for [Builder.emailDelivery]. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * This unboxed primitive overload exists for backwards compatibility. */ - fun paymentProviderId(): Optional = - Optional.ofNullable(paymentProviderId.getNullable("payment_provider_id")) + fun emailDelivery(emailDelivery: Boolean) = emailDelivery(emailDelivery as Boolean?) + + /** Alias for calling [Builder.emailDelivery] with `emailDelivery.orElse(null)`. */ + fun emailDelivery(emailDelivery: Optional) = + emailDelivery(emailDelivery.getOrNull()) /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Sets [Builder.emailDelivery] to an arbitrary JSON value. + * + * You should usually call [Builder.emailDelivery] with a well-typed [Boolean] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun reportingConfiguration(): Optional = - Optional.ofNullable(reportingConfiguration.getNullable("reporting_configuration")) + fun emailDelivery(emailDelivery: JsonField) = apply { + body.emailDelivery(emailDelivery) + } /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * The external customer ID. This can only be set if empty and the customer has no past or + * current subscriptions. */ - fun shippingAddress(): Optional = - Optional.ofNullable(shippingAddress.getNullable("shipping_address")) + fun externalCustomerId(externalCustomerId: String?) = apply { + body.externalCustomerId(externalCustomerId) + } /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Alias for calling [Builder.externalCustomerId] with `externalCustomerId.orElse(null)`. */ - fun taxConfiguration(): Optional = - Optional.ofNullable(taxConfiguration.getNullable("tax_configuration")) + fun externalCustomerId(externalCustomerId: Optional) = + externalCustomerId(externalCustomerId.getOrNull()) + + /** + * Sets [Builder.externalCustomerId] to an arbitrary JSON value. + * + * You should usually call [Builder.externalCustomerId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun externalCustomerId(externalCustomerId: JsonField) = apply { + body.externalCustomerId(externalCustomerId) + } + + /** The hierarchical relationships for this customer. */ + fun hierarchy(hierarchy: Hierarchy?) = apply { body.hierarchy(hierarchy) } + + /** Alias for calling [Builder.hierarchy] with `hierarchy.orElse(null)`. */ + fun hierarchy(hierarchy: Optional) = hierarchy(hierarchy.getOrNull()) + + /** + * Sets [Builder.hierarchy] to an arbitrary JSON value. + * + * You should usually call [Builder.hierarchy] with a well-typed [Hierarchy] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun hierarchy(hierarchy: JsonField) = apply { body.hierarchy(hierarchy) } + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. + */ + fun metadata(metadata: Metadata?) = apply { body.metadata(metadata) } + + /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ + fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) + + /** + * Sets [Builder.metadata] to an arbitrary JSON value. + * + * You should usually call [Builder.metadata] with a well-typed [Metadata] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun metadata(metadata: JsonField) = apply { body.metadata(metadata) } + + /** The full name of the customer */ + fun name(name: String?) = apply { body.name(name) } + + /** Alias for calling [Builder.name] with `name.orElse(null)`. */ + fun name(name: Optional) = name(name.getOrNull()) + + /** + * Sets [Builder.name] to an arbitrary JSON value. + * + * You should usually call [Builder.name] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. + */ + fun name(name: JsonField) = apply { body.name(name) } + + /** + * This is used for creating charges or invoices in an external system via Orb. When not in + * test mode: + * - the connection must first be configured in the Orb webapp. + * - if the provider is an invoicing provider (`stripe_invoice`, `quickbooks`, `bill.com`, + * `netsuite`), any product mappings must first be configured with the Orb team. + */ + fun paymentProvider(paymentProvider: PaymentProvider?) = apply { + body.paymentProvider(paymentProvider) + } + + /** Alias for calling [Builder.paymentProvider] with `paymentProvider.orElse(null)`. */ + fun paymentProvider(paymentProvider: Optional) = + paymentProvider(paymentProvider.getOrNull()) + + /** + * Sets [Builder.paymentProvider] to an arbitrary JSON value. + * + * You should usually call [Builder.paymentProvider] with a well-typed [PaymentProvider] + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. + */ + fun paymentProvider(paymentProvider: JsonField) = apply { + body.paymentProvider(paymentProvider) + } + + /** + * The ID of this customer in an external payments solution, such as Stripe. This is used + * for creating charges or invoices in the external system via Orb. + */ + fun paymentProviderId(paymentProviderId: String?) = apply { + body.paymentProviderId(paymentProviderId) + } + + /** Alias for calling [Builder.paymentProviderId] with `paymentProviderId.orElse(null)`. */ + fun paymentProviderId(paymentProviderId: Optional) = + paymentProviderId(paymentProviderId.getOrNull()) + + /** + * Sets [Builder.paymentProviderId] to an arbitrary JSON value. + * + * You should usually call [Builder.paymentProviderId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun paymentProviderId(paymentProviderId: JsonField) = apply { + body.paymentProviderId(paymentProviderId) + } + + fun reportingConfiguration(reportingConfiguration: ReportingConfiguration?) = apply { + body.reportingConfiguration(reportingConfiguration) + } + + /** + * Alias for calling [Builder.reportingConfiguration] with + * `reportingConfiguration.orElse(null)`. + */ + fun reportingConfiguration(reportingConfiguration: Optional) = + reportingConfiguration(reportingConfiguration.getOrNull()) + + /** + * Sets [Builder.reportingConfiguration] to an arbitrary JSON value. + * + * You should usually call [Builder.reportingConfiguration] with a well-typed + * [ReportingConfiguration] value instead. This method is primarily for setting the field to + * an undocumented or not yet supported value. + */ + fun reportingConfiguration(reportingConfiguration: JsonField) = + apply { + body.reportingConfiguration(reportingConfiguration) + } + + fun shippingAddress(shippingAddress: ShippingAddress?) = apply { + body.shippingAddress(shippingAddress) + } + + /** Alias for calling [Builder.shippingAddress] with `shippingAddress.orElse(null)`. */ + fun shippingAddress(shippingAddress: Optional) = + shippingAddress(shippingAddress.getOrNull()) + + /** + * Sets [Builder.shippingAddress] to an arbitrary JSON value. + * + * You should usually call [Builder.shippingAddress] with a well-typed [ShippingAddress] + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. + */ + fun shippingAddress(shippingAddress: JsonField) = apply { + body.shippingAddress(shippingAddress) + } + + fun taxConfiguration(taxConfiguration: TaxConfiguration?) = apply { + body.taxConfiguration(taxConfiguration) + } + + /** Alias for calling [Builder.taxConfiguration] with `taxConfiguration.orElse(null)`. */ + fun taxConfiguration(taxConfiguration: Optional) = + taxConfiguration(taxConfiguration.getOrNull()) + + /** + * Sets [Builder.taxConfiguration] to an arbitrary JSON value. + * + * You should usually call [Builder.taxConfiguration] with a well-typed [TaxConfiguration] + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. + */ + fun taxConfiguration(taxConfiguration: JsonField) = apply { + body.taxConfiguration(taxConfiguration) + } + + /** + * Alias for calling [taxConfiguration] with `TaxConfiguration.ofNewAvalara(newAvalara)`. + */ + fun taxConfiguration(newAvalara: TaxConfiguration.NewAvalaraTaxConfiguration) = apply { + body.taxConfiguration(newAvalara) + } + + /** + * Alias for calling [taxConfiguration] with the following: + * ```java + * TaxConfiguration.NewAvalaraTaxConfiguration.builder() + * .taxProvider(CustomerUpdateParams.TaxConfiguration.NewAvalaraTaxConfiguration.TaxProvider.AVALARA) + * .taxExempt(taxExempt) + * .build() + * ``` + */ + fun newAvalaraTaxConfiguration(taxExempt: Boolean) = apply { + body.newAvalaraTaxConfiguration(taxExempt) + } + + /** Alias for calling [taxConfiguration] with `TaxConfiguration.ofNewTaxJar(newTaxJar)`. */ + fun taxConfiguration(newTaxJar: TaxConfiguration.NewTaxJarConfiguration) = apply { + body.taxConfiguration(newTaxJar) + } + + /** + * Alias for calling [taxConfiguration] with the following: + * ```java + * TaxConfiguration.NewTaxJarConfiguration.builder() + * .taxProvider(CustomerUpdateParams.TaxConfiguration.NewTaxJarConfiguration.TaxProvider.TAXJAR) + * .taxExempt(taxExempt) + * .build() + * ``` + */ + fun newTaxJarTaxConfiguration(taxExempt: Boolean) = apply { + body.newTaxJarTaxConfiguration(taxExempt) + } /** * Tax IDs are commonly required to be displayed on customer invoices, which are added to @@ -742,199 +940,679 @@ private constructor( * |Uruguay |`uy_ruc` |Uruguayan RUC Number | * |Venezuela |`ve_rif` |Venezuelan RIF Number | * |Vietnam |`vn_tin` |Vietnamese Tax ID Number | - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). */ - fun taxId(): Optional = Optional.ofNullable(taxId.getNullable("tax_id")) + fun taxId(taxId: TaxId?) = apply { body.taxId(taxId) } - /** - * Returns the raw JSON value of [accountingSyncConfiguration]. - * - * Unlike [accountingSyncConfiguration], this method doesn't throw if the JSON field has an - * unexpected type. - */ - @JsonProperty("accounting_sync_configuration") - @ExcludeMissing - fun _accountingSyncConfiguration(): JsonField = - accountingSyncConfiguration + /** Alias for calling [Builder.taxId] with `taxId.orElse(null)`. */ + fun taxId(taxId: Optional) = taxId(taxId.getOrNull()) /** - * Returns the raw JSON value of [additionalEmails]. + * Sets [Builder.taxId] to an arbitrary JSON value. * - * Unlike [additionalEmails], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.taxId] with a well-typed [TaxId] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - @JsonProperty("additional_emails") - @ExcludeMissing - fun _additionalEmails(): JsonField> = additionalEmails + fun taxId(taxId: JsonField) = apply { body.taxId(taxId) } - /** - * Returns the raw JSON value of [autoCollection]. - * - * Unlike [autoCollection], this method doesn't throw if the JSON field has an unexpected - * type. - */ - @JsonProperty("auto_collection") - @ExcludeMissing - fun _autoCollection(): JsonField = autoCollection + fun additionalBodyProperties(additionalBodyProperties: Map) = apply { + body.additionalProperties(additionalBodyProperties) + } + + fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { + body.putAdditionalProperty(key, value) + } + + fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = + apply { + body.putAllAdditionalProperties(additionalBodyProperties) + } + + fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + body.removeAllAdditionalProperties(keys) + } + + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) + } + + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } + + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } + + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) + } + + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } /** - * Returns the raw JSON value of [billingAddress]. + * Returns an immutable instance of [CustomerUpdateParams]. * - * Unlike [billingAddress], this method doesn't throw if the JSON field has an unexpected - * type. + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .customerId() + * ``` + * + * @throws IllegalStateException if any required field is unset. */ - @JsonProperty("billing_address") - @ExcludeMissing - fun _billingAddress(): JsonField = billingAddress + fun build(): CustomerUpdateParams = + CustomerUpdateParams( + checkRequired("customerId", customerId), + body.build(), + additionalHeaders.build(), + additionalQueryParams.build(), + ) + } + + @JvmSynthetic internal fun _body(): Body = body + + fun _pathParam(index: Int): String = + when (index) { + 0 -> customerId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body + private constructor( + private val accountingSyncConfiguration: JsonField, + private val additionalEmails: JsonField>, + private val autoCollection: JsonField, + private val billingAddress: JsonField, + private val currency: JsonField, + private val email: JsonField, + private val emailDelivery: JsonField, + private val externalCustomerId: JsonField, + private val hierarchy: JsonField, + private val metadata: JsonField, + private val name: JsonField, + private val paymentProvider: JsonField, + private val paymentProviderId: JsonField, + private val reportingConfiguration: JsonField, + private val shippingAddress: JsonField, + private val taxConfiguration: JsonField, + private val taxId: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("accounting_sync_configuration") + @ExcludeMissing + accountingSyncConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("additional_emails") + @ExcludeMissing + additionalEmails: JsonField> = JsonMissing.of(), + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("billing_address") + @ExcludeMissing + billingAddress: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("email") @ExcludeMissing email: JsonField = JsonMissing.of(), + @JsonProperty("email_delivery") + @ExcludeMissing + emailDelivery: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + @JsonProperty("hierarchy") + @ExcludeMissing + hierarchy: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("payment_provider") + @ExcludeMissing + paymentProvider: JsonField = JsonMissing.of(), + @JsonProperty("payment_provider_id") + @ExcludeMissing + paymentProviderId: JsonField = JsonMissing.of(), + @JsonProperty("reporting_configuration") + @ExcludeMissing + reportingConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("shipping_address") + @ExcludeMissing + shippingAddress: JsonField = JsonMissing.of(), + @JsonProperty("tax_configuration") + @ExcludeMissing + taxConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("tax_id") @ExcludeMissing taxId: JsonField = JsonMissing.of(), + ) : this( + accountingSyncConfiguration, + additionalEmails, + autoCollection, + billingAddress, + currency, + email, + emailDelivery, + externalCustomerId, + hierarchy, + metadata, + name, + paymentProvider, + paymentProviderId, + reportingConfiguration, + shippingAddress, + taxConfiguration, + taxId, + mutableMapOf(), + ) /** - * Returns the raw JSON value of [currency]. - * - * Unlike [currency], this method doesn't throw if the JSON field has an unexpected type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + fun accountingSyncConfiguration(): Optional = + Optional.ofNullable( + accountingSyncConfiguration.getNullable("accounting_sync_configuration") + ) /** - * Returns the raw JSON value of [email]. + * Additional email addresses for this customer. If populated, these email addresses will be + * CC'd for customer communications. * - * Unlike [email], this method doesn't throw if the JSON field has an unexpected type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("email") @ExcludeMissing fun _email(): JsonField = email + fun additionalEmails(): Optional> = + Optional.ofNullable(additionalEmails.getNullable("additional_emails")) /** - * Returns the raw JSON value of [emailDelivery]. + * Used to determine if invoices for this customer will automatically attempt to charge a + * saved payment method, if available. This parameter defaults to `True` when a payment + * provider is provided on customer creation. * - * Unlike [emailDelivery], this method doesn't throw if the JSON field has an unexpected - * type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("email_delivery") - @ExcludeMissing - fun _emailDelivery(): JsonField = emailDelivery + fun autoCollection(): Optional = + Optional.ofNullable(autoCollection.getNullable("auto_collection")) /** - * Returns the raw JSON value of [externalCustomerId]. - * - * Unlike [externalCustomerId], this method doesn't throw if the JSON field has an - * unexpected type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("external_customer_id") - @ExcludeMissing - fun _externalCustomerId(): JsonField = externalCustomerId + fun billingAddress(): Optional = + Optional.ofNullable(billingAddress.getNullable("billing_address")) /** - * Returns the raw JSON value of [hierarchy]. + * An ISO 4217 currency string used for the customer's invoices and balance. If not set at + * creation time, will be set at subscription creation time. * - * Unlike [hierarchy], this method doesn't throw if the JSON field has an unexpected type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("hierarchy") - @ExcludeMissing - fun _hierarchy(): JsonField = hierarchy + fun currency(): Optional = Optional.ofNullable(currency.getNullable("currency")) /** - * Returns the raw JSON value of [metadata]. + * A valid customer email, to be used for invoicing and notifications. * - * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata + fun email(): Optional = Optional.ofNullable(email.getNullable("email")) /** - * Returns the raw JSON value of [name]. - * - * Unlike [name], this method doesn't throw if the JSON field has an unexpected type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + fun emailDelivery(): Optional = + Optional.ofNullable(emailDelivery.getNullable("email_delivery")) /** - * Returns the raw JSON value of [paymentProvider]. + * The external customer ID. This can only be set if empty and the customer has no past or + * current subscriptions. * - * Unlike [paymentProvider], this method doesn't throw if the JSON field has an unexpected - * type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("payment_provider") - @ExcludeMissing - fun _paymentProvider(): JsonField = paymentProvider + fun externalCustomerId(): Optional = + Optional.ofNullable(externalCustomerId.getNullable("external_customer_id")) /** - * Returns the raw JSON value of [paymentProviderId]. + * The hierarchical relationships for this customer. * - * Unlike [paymentProviderId], this method doesn't throw if the JSON field has an unexpected - * type. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JsonProperty("payment_provider_id") - @ExcludeMissing - fun _paymentProviderId(): JsonField = paymentProviderId + fun hierarchy(): Optional = + Optional.ofNullable(hierarchy.getNullable("hierarchy")) /** - * Returns the raw JSON value of [reportingConfiguration]. + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. * - * Unlike [reportingConfiguration], this method doesn't throw if the JSON field has an + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) + + /** + * The full name of the customer + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun name(): Optional = Optional.ofNullable(name.getNullable("name")) + + /** + * This is used for creating charges or invoices in an external system via Orb. When not in + * test mode: + * - the connection must first be configured in the Orb webapp. + * - if the provider is an invoicing provider (`stripe_invoice`, `quickbooks`, `bill.com`, + * `netsuite`), any product mappings must first be configured with the Orb team. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun paymentProvider(): Optional = + Optional.ofNullable(paymentProvider.getNullable("payment_provider")) + + /** + * The ID of this customer in an external payments solution, such as Stripe. This is used + * for creating charges or invoices in the external system via Orb. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun paymentProviderId(): Optional = + Optional.ofNullable(paymentProviderId.getNullable("payment_provider_id")) + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun reportingConfiguration(): Optional = + Optional.ofNullable(reportingConfiguration.getNullable("reporting_configuration")) + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun shippingAddress(): Optional = + Optional.ofNullable(shippingAddress.getNullable("shipping_address")) + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun taxConfiguration(): Optional = + Optional.ofNullable(taxConfiguration.getNullable("tax_configuration")) + + /** + * Tax IDs are commonly required to be displayed on customer invoices, which are added to + * the headers of invoices. + * + * ### Supported Tax ID Countries and Types + * |Country |Type |Description | + * |--------------------|------------|-------------------------------------------------------------------------------------------------------| + * |Andorra |`ad_nrt` |Andorran NRT Number | + * |Argentina |`ar_cuit` |Argentinian Tax ID Number | + * |Australia |`au_abn` |Australian Business Number (AU ABN) | + * |Australia |`au_arn` |Australian Taxation Office Reference Number | + * |Austria |`eu_vat` |European VAT Number | + * |Bahrain |`bh_vat` |Bahraini VAT Number | + * |Belgium |`eu_vat` |European VAT Number | + * |Bolivia |`bo_tin` |Bolivian Tax ID | + * |Brazil |`br_cnpj` |Brazilian CNPJ Number | + * |Brazil |`br_cpf` |Brazilian CPF Number | + * |Bulgaria |`bg_uic` |Bulgaria Unified Identification Code | + * |Bulgaria |`eu_vat` |European VAT Number | + * |Canada |`ca_bn` |Canadian BN | + * |Canada |`ca_gst_hst`|Canadian GST/HST Number | + * |Canada |`ca_pst_bc` |Canadian PST Number (British Columbia) | + * |Canada |`ca_pst_mb` |Canadian PST Number (Manitoba) | + * |Canada |`ca_pst_sk` |Canadian PST Number (Saskatchewan) | + * |Canada |`ca_qst` |Canadian QST Number (Québec) | + * |Chile |`cl_tin` |Chilean TIN | + * |China |`cn_tin` |Chinese Tax ID | + * |Colombia |`co_nit` |Colombian NIT Number | + * |Costa Rica |`cr_tin` |Costa Rican Tax ID | + * |Croatia |`eu_vat` |European VAT Number | + * |Cyprus |`eu_vat` |European VAT Number | + * |Czech Republic |`eu_vat` |European VAT Number | + * |Denmark |`eu_vat` |European VAT Number | + * |Dominican Republic |`do_rcn` |Dominican RCN Number | + * |Ecuador |`ec_ruc` |Ecuadorian RUC Number | + * |Egypt |`eg_tin` |Egyptian Tax Identification Number | + * |El Salvador |`sv_nit` |El Salvadorian NIT Number | + * |Estonia |`eu_vat` |European VAT Number | + * |EU |`eu_oss_vat`|European One Stop Shop VAT Number for non-Union scheme | + * |Finland |`eu_vat` |European VAT Number | + * |France |`eu_vat` |European VAT Number | + * |Georgia |`ge_vat` |Georgian VAT | + * |Germany |`eu_vat` |European VAT Number | + * |Greece |`eu_vat` |European VAT Number | + * |Hong Kong |`hk_br` |Hong Kong BR Number | + * |Hungary |`eu_vat` |European VAT Number | + * |Hungary |`hu_tin` |Hungary Tax Number (adószám) | + * |Iceland |`is_vat` |Icelandic VAT | + * |India |`in_gst` |Indian GST Number | + * |Indonesia |`id_npwp` |Indonesian NPWP Number | + * |Ireland |`eu_vat` |European VAT Number | + * |Israel |`il_vat` |Israel VAT | + * |Italy |`eu_vat` |European VAT Number | + * |Japan |`jp_cn` |Japanese Corporate Number (_Hōjin Bangō_) | + * |Japan |`jp_rn` |Japanese Registered Foreign Businesses' Registration Number (_Tōroku Kokugai Jigyōsha no Tōroku Bangō_)| + * |Japan |`jp_trn` |Japanese Tax Registration Number (_Tōroku Bangō_) | + * |Kazakhstan |`kz_bin` |Kazakhstani Business Identification Number | + * |Kenya |`ke_pin` |Kenya Revenue Authority Personal Identification Number | + * |Latvia |`eu_vat` |European VAT Number | + * |Liechtenstein |`li_uid` |Liechtensteinian UID Number | + * |Lithuania |`eu_vat` |European VAT Number | + * |Luxembourg |`eu_vat` |European VAT Number | + * |Malaysia |`my_frp` |Malaysian FRP Number | + * |Malaysia |`my_itn` |Malaysian ITN | + * |Malaysia |`my_sst` |Malaysian SST Number | + * |Malta |`eu_vat ` |European VAT Number | + * |Mexico |`mx_rfc` |Mexican RFC Number | + * |Netherlands |`eu_vat` |European VAT Number | + * |New Zealand |`nz_gst` |New Zealand GST Number | + * |Nigeria |`ng_tin` |Nigerian Tax Identification Number | + * |Norway |`no_vat` |Norwegian VAT Number | + * |Norway |`no_voec` |Norwegian VAT on e-commerce Number | + * |Oman |`om_vat` |Omani VAT Number | + * |Peru |`pe_ruc` |Peruvian RUC Number | + * |Philippines |`ph_tin ` |Philippines Tax Identification Number | + * |Poland |`eu_vat` |European VAT Number | + * |Portugal |`eu_vat` |European VAT Number | + * |Romania |`eu_vat` |European VAT Number | + * |Romania |`ro_tin` |Romanian Tax ID Number | + * |Russia |`ru_inn` |Russian INN | + * |Russia |`ru_kpp` |Russian KPP | + * |Saudi Arabia |`sa_vat` |Saudi Arabia VAT | + * |Serbia |`rs_pib` |Serbian PIB Number | + * |Singapore |`sg_gst` |Singaporean GST | + * |Singapore |`sg_uen` |Singaporean UEN | + * |Slovakia |`eu_vat` |European VAT Number | + * |Slovenia |`eu_vat` |European VAT Number | + * |Slovenia |`si_tin` |Slovenia Tax Number (davčna številka) | + * |South Africa |`za_vat` |South African VAT Number | + * |South Korea |`kr_brn` |Korean BRN | + * |Spain |`es_cif` |Spanish NIF Number (previously Spanish CIF Number) | + * |Spain |`eu_vat` |European VAT Number | + * |Sweden |`eu_vat` |European VAT Number | + * |Switzerland |`ch_vat` |Switzerland VAT Number | + * |Taiwan |`tw_vat` |Taiwanese VAT | + * |Thailand |`th_vat` |Thai VAT | + * |Turkey |`tr_tin` |Turkish Tax Identification Number | + * |Ukraine |`ua_vat` |Ukrainian VAT | + * |United Arab Emirates|`ae_trn` |United Arab Emirates TRN | + * |United Kingdom |`eu_vat` |Northern Ireland VAT Number | + * |United Kingdom |`gb_vat` |United Kingdom VAT Number | + * |United States |`us_ein` |United States EIN | + * |Uruguay |`uy_ruc` |Uruguayan RUC Number | + * |Venezuela |`ve_rif` |Venezuelan RIF Number | + * |Vietnam |`vn_tin` |Vietnamese Tax ID Number | + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun taxId(): Optional = Optional.ofNullable(taxId.getNullable("tax_id")) + + /** + * Returns the raw JSON value of [accountingSyncConfiguration]. + * + * Unlike [accountingSyncConfiguration], this method doesn't throw if the JSON field has an * unexpected type. */ - @JsonProperty("reporting_configuration") + @JsonProperty("accounting_sync_configuration") @ExcludeMissing - fun _reportingConfiguration(): JsonField = reportingConfiguration + fun _accountingSyncConfiguration(): JsonField = + accountingSyncConfiguration /** - * Returns the raw JSON value of [shippingAddress]. + * Returns the raw JSON value of [additionalEmails]. * - * Unlike [shippingAddress], this method doesn't throw if the JSON field has an unexpected + * Unlike [additionalEmails], this method doesn't throw if the JSON field has an unexpected * type. */ - @JsonProperty("shipping_address") + @JsonProperty("additional_emails") @ExcludeMissing - fun _shippingAddress(): JsonField = shippingAddress + fun _additionalEmails(): JsonField> = additionalEmails /** - * Returns the raw JSON value of [taxConfiguration]. + * Returns the raw JSON value of [autoCollection]. * - * Unlike [taxConfiguration], this method doesn't throw if the JSON field has an unexpected + * Unlike [autoCollection], this method doesn't throw if the JSON field has an unexpected * type. */ - @JsonProperty("tax_configuration") + @JsonProperty("auto_collection") @ExcludeMissing - fun _taxConfiguration(): JsonField = taxConfiguration + fun _autoCollection(): JsonField = autoCollection /** - * Returns the raw JSON value of [taxId]. + * Returns the raw JSON value of [billingAddress]. * - * Unlike [taxId], this method doesn't throw if the JSON field has an unexpected type. + * Unlike [billingAddress], this method doesn't throw if the JSON field has an unexpected + * type. */ - @JsonProperty("tax_id") @ExcludeMissing fun _taxId(): JsonField = taxId - - @JsonAnyGetter + @JsonProperty("billing_address") @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + fun _billingAddress(): JsonField = billingAddress - fun validate(): Body = apply { - if (validated) { - return@apply - } + /** + * Returns the raw JSON value of [currency]. + * + * Unlike [currency], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency - accountingSyncConfiguration().ifPresent { it.validate() } - additionalEmails() - autoCollection() - billingAddress().ifPresent { it.validate() } - currency() - email() - emailDelivery() - externalCustomerId() - hierarchy().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - name() - paymentProvider() - paymentProviderId() - reportingConfiguration().ifPresent { it.validate() } - shippingAddress().ifPresent { it.validate() } - taxConfiguration().ifPresent { it.validate() } - taxId().ifPresent { it.validate() } - validated = true - } + /** + * Returns the raw JSON value of [email]. + * + * Unlike [email], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("email") @ExcludeMissing fun _email(): JsonField = email - fun toBuilder() = Builder().from(this) + /** + * Returns the raw JSON value of [emailDelivery]. + * + * Unlike [emailDelivery], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("email_delivery") + @ExcludeMissing + fun _emailDelivery(): JsonField = emailDelivery + + /** + * Returns the raw JSON value of [externalCustomerId]. + * + * Unlike [externalCustomerId], this method doesn't throw if the JSON field has an + * unexpected type. + */ + @JsonProperty("external_customer_id") + @ExcludeMissing + fun _externalCustomerId(): JsonField = externalCustomerId + + /** + * Returns the raw JSON value of [hierarchy]. + * + * Unlike [hierarchy], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("hierarchy") + @ExcludeMissing + fun _hierarchy(): JsonField = hierarchy + + /** + * Returns the raw JSON value of [metadata]. + * + * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata + + /** + * Returns the raw JSON value of [name]. + * + * Unlike [name], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + + /** + * Returns the raw JSON value of [paymentProvider]. + * + * Unlike [paymentProvider], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("payment_provider") + @ExcludeMissing + fun _paymentProvider(): JsonField = paymentProvider + + /** + * Returns the raw JSON value of [paymentProviderId]. + * + * Unlike [paymentProviderId], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("payment_provider_id") + @ExcludeMissing + fun _paymentProviderId(): JsonField = paymentProviderId + + /** + * Returns the raw JSON value of [reportingConfiguration]. + * + * Unlike [reportingConfiguration], this method doesn't throw if the JSON field has an + * unexpected type. + */ + @JsonProperty("reporting_configuration") + @ExcludeMissing + fun _reportingConfiguration(): JsonField = reportingConfiguration + + /** + * Returns the raw JSON value of [shippingAddress]. + * + * Unlike [shippingAddress], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("shipping_address") + @ExcludeMissing + fun _shippingAddress(): JsonField = shippingAddress + + /** + * Returns the raw JSON value of [taxConfiguration]. + * + * Unlike [taxConfiguration], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("tax_configuration") + @ExcludeMissing + fun _taxConfiguration(): JsonField = taxConfiguration + + /** + * Returns the raw JSON value of [taxId]. + * + * Unlike [taxId], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("tax_id") @ExcludeMissing fun _taxId(): JsonField = taxId + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) companion object { @@ -1498,768 +2176,127 @@ private constructor( */ fun taxId(taxId: TaxId?) = taxId(JsonField.ofNullable(taxId)) - /** Alias for calling [Builder.taxId] with `taxId.orElse(null)`. */ - fun taxId(taxId: Optional) = taxId(taxId.getOrNull()) - - /** - * Sets [Builder.taxId] to an arbitrary JSON value. - * - * You should usually call [Builder.taxId] with a well-typed [TaxId] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun taxId(taxId: JsonField) = apply { this.taxId = taxId } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - */ - fun build(): Body = - Body( - accountingSyncConfiguration, - (additionalEmails ?: JsonMissing.of()).map { it.toImmutable() }, - autoCollection, - billingAddress, - currency, - email, - emailDelivery, - externalCustomerId, - hierarchy, - metadata, - name, - paymentProvider, - paymentProviderId, - reportingConfiguration, - shippingAddress, - taxConfiguration, - taxId, - additionalProperties.toImmutable(), - ) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && accountingSyncConfiguration == other.accountingSyncConfiguration && additionalEmails == other.additionalEmails && autoCollection == other.autoCollection && billingAddress == other.billingAddress && currency == other.currency && email == other.email && emailDelivery == other.emailDelivery && externalCustomerId == other.externalCustomerId && hierarchy == other.hierarchy && metadata == other.metadata && name == other.name && paymentProvider == other.paymentProvider && paymentProviderId == other.paymentProviderId && reportingConfiguration == other.reportingConfiguration && shippingAddress == other.shippingAddress && taxConfiguration == other.taxConfiguration && taxId == other.taxId && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(accountingSyncConfiguration, additionalEmails, autoCollection, billingAddress, currency, email, emailDelivery, externalCustomerId, hierarchy, metadata, name, paymentProvider, paymentProviderId, reportingConfiguration, shippingAddress, taxConfiguration, taxId, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{accountingSyncConfiguration=$accountingSyncConfiguration, additionalEmails=$additionalEmails, autoCollection=$autoCollection, billingAddress=$billingAddress, currency=$currency, email=$email, emailDelivery=$emailDelivery, externalCustomerId=$externalCustomerId, hierarchy=$hierarchy, metadata=$metadata, name=$name, paymentProvider=$paymentProvider, paymentProviderId=$paymentProviderId, reportingConfiguration=$reportingConfiguration, shippingAddress=$shippingAddress, taxConfiguration=$taxConfiguration, taxId=$taxId, additionalProperties=$additionalProperties}" - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of [CustomerUpdateParams]. - * - * The following fields are required: - * ```java - * .customerId() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [CustomerUpdateParams]. */ - @NoAutoDetect - class Builder internal constructor() { - - private var customerId: String? = null - private var body: Body.Builder = Body.builder() - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() - - @JvmSynthetic - internal fun from(customerUpdateParams: CustomerUpdateParams) = apply { - customerId = customerUpdateParams.customerId - body = customerUpdateParams.body.toBuilder() - additionalHeaders = customerUpdateParams.additionalHeaders.toBuilder() - additionalQueryParams = customerUpdateParams.additionalQueryParams.toBuilder() - } - - fun customerId(customerId: String) = apply { this.customerId = customerId } - - fun accountingSyncConfiguration(accountingSyncConfiguration: AccountingSyncConfiguration?) = - apply { - body.accountingSyncConfiguration(accountingSyncConfiguration) - } - - /** - * Alias for calling [Builder.accountingSyncConfiguration] with - * `accountingSyncConfiguration.orElse(null)`. - */ - fun accountingSyncConfiguration( - accountingSyncConfiguration: Optional - ) = accountingSyncConfiguration(accountingSyncConfiguration.getOrNull()) - - /** - * Sets [Builder.accountingSyncConfiguration] to an arbitrary JSON value. - * - * You should usually call [Builder.accountingSyncConfiguration] with a well-typed - * [AccountingSyncConfiguration] value instead. This method is primarily for setting the - * field to an undocumented or not yet supported value. - */ - fun accountingSyncConfiguration( - accountingSyncConfiguration: JsonField - ) = apply { body.accountingSyncConfiguration(accountingSyncConfiguration) } - - /** - * Additional email addresses for this customer. If populated, these email addresses will be - * CC'd for customer communications. - */ - fun additionalEmails(additionalEmails: List?) = apply { - body.additionalEmails(additionalEmails) - } - - /** Alias for calling [Builder.additionalEmails] with `additionalEmails.orElse(null)`. */ - fun additionalEmails(additionalEmails: Optional>) = - additionalEmails(additionalEmails.getOrNull()) - - /** - * Sets [Builder.additionalEmails] to an arbitrary JSON value. - * - * You should usually call [Builder.additionalEmails] with a well-typed `List` value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun additionalEmails(additionalEmails: JsonField>) = apply { - body.additionalEmails(additionalEmails) - } - - /** - * Adds a single [String] to [additionalEmails]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addAdditionalEmail(additionalEmail: String) = apply { - body.addAdditionalEmail(additionalEmail) - } - - /** - * Used to determine if invoices for this customer will automatically attempt to charge a - * saved payment method, if available. This parameter defaults to `True` when a payment - * provider is provided on customer creation. - */ - fun autoCollection(autoCollection: Boolean?) = apply { body.autoCollection(autoCollection) } - - /** - * Alias for [Builder.autoCollection]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun autoCollection(autoCollection: Boolean) = autoCollection(autoCollection as Boolean?) - - /** Alias for calling [Builder.autoCollection] with `autoCollection.orElse(null)`. */ - fun autoCollection(autoCollection: Optional) = - autoCollection(autoCollection.getOrNull()) - - /** - * Sets [Builder.autoCollection] to an arbitrary JSON value. - * - * You should usually call [Builder.autoCollection] with a well-typed [Boolean] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun autoCollection(autoCollection: JsonField) = apply { - body.autoCollection(autoCollection) - } - - fun billingAddress(billingAddress: BillingAddress?) = apply { - body.billingAddress(billingAddress) - } - - /** Alias for calling [Builder.billingAddress] with `billingAddress.orElse(null)`. */ - fun billingAddress(billingAddress: Optional) = - billingAddress(billingAddress.getOrNull()) - - /** - * Sets [Builder.billingAddress] to an arbitrary JSON value. - * - * You should usually call [Builder.billingAddress] with a well-typed [BillingAddress] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun billingAddress(billingAddress: JsonField) = apply { - body.billingAddress(billingAddress) - } - - /** - * An ISO 4217 currency string used for the customer's invoices and balance. If not set at - * creation time, will be set at subscription creation time. - */ - fun currency(currency: String?) = apply { body.currency(currency) } - - /** Alias for calling [Builder.currency] with `currency.orElse(null)`. */ - fun currency(currency: Optional) = currency(currency.getOrNull()) - - /** - * Sets [Builder.currency] to an arbitrary JSON value. - * - * You should usually call [Builder.currency] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun currency(currency: JsonField) = apply { body.currency(currency) } - - /** A valid customer email, to be used for invoicing and notifications. */ - fun email(email: String?) = apply { body.email(email) } - - /** Alias for calling [Builder.email] with `email.orElse(null)`. */ - fun email(email: Optional) = email(email.getOrNull()) - - /** - * Sets [Builder.email] to an arbitrary JSON value. - * - * You should usually call [Builder.email] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun email(email: JsonField) = apply { body.email(email) } - - fun emailDelivery(emailDelivery: Boolean?) = apply { body.emailDelivery(emailDelivery) } - - /** - * Alias for [Builder.emailDelivery]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun emailDelivery(emailDelivery: Boolean) = emailDelivery(emailDelivery as Boolean?) - - /** Alias for calling [Builder.emailDelivery] with `emailDelivery.orElse(null)`. */ - fun emailDelivery(emailDelivery: Optional) = - emailDelivery(emailDelivery.getOrNull()) - - /** - * Sets [Builder.emailDelivery] to an arbitrary JSON value. - * - * You should usually call [Builder.emailDelivery] with a well-typed [Boolean] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun emailDelivery(emailDelivery: JsonField) = apply { - body.emailDelivery(emailDelivery) - } - - /** - * The external customer ID. This can only be set if empty and the customer has no past or - * current subscriptions. - */ - fun externalCustomerId(externalCustomerId: String?) = apply { - body.externalCustomerId(externalCustomerId) - } - - /** - * Alias for calling [Builder.externalCustomerId] with `externalCustomerId.orElse(null)`. - */ - fun externalCustomerId(externalCustomerId: Optional) = - externalCustomerId(externalCustomerId.getOrNull()) - - /** - * Sets [Builder.externalCustomerId] to an arbitrary JSON value. - * - * You should usually call [Builder.externalCustomerId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun externalCustomerId(externalCustomerId: JsonField) = apply { - body.externalCustomerId(externalCustomerId) - } - - /** The hierarchical relationships for this customer. */ - fun hierarchy(hierarchy: Hierarchy?) = apply { body.hierarchy(hierarchy) } - - /** Alias for calling [Builder.hierarchy] with `hierarchy.orElse(null)`. */ - fun hierarchy(hierarchy: Optional) = hierarchy(hierarchy.getOrNull()) - - /** - * Sets [Builder.hierarchy] to an arbitrary JSON value. - * - * You should usually call [Builder.hierarchy] with a well-typed [Hierarchy] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun hierarchy(hierarchy: JsonField) = apply { body.hierarchy(hierarchy) } - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. - */ - fun metadata(metadata: Metadata?) = apply { body.metadata(metadata) } - - /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ - fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) - - /** - * Sets [Builder.metadata] to an arbitrary JSON value. - * - * You should usually call [Builder.metadata] with a well-typed [Metadata] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun metadata(metadata: JsonField) = apply { body.metadata(metadata) } - - /** The full name of the customer */ - fun name(name: String?) = apply { body.name(name) } - - /** Alias for calling [Builder.name] with `name.orElse(null)`. */ - fun name(name: Optional) = name(name.getOrNull()) - - /** - * Sets [Builder.name] to an arbitrary JSON value. - * - * You should usually call [Builder.name] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun name(name: JsonField) = apply { body.name(name) } - - /** - * This is used for creating charges or invoices in an external system via Orb. When not in - * test mode: - * - the connection must first be configured in the Orb webapp. - * - if the provider is an invoicing provider (`stripe_invoice`, `quickbooks`, `bill.com`, - * `netsuite`), any product mappings must first be configured with the Orb team. - */ - fun paymentProvider(paymentProvider: PaymentProvider?) = apply { - body.paymentProvider(paymentProvider) - } - - /** Alias for calling [Builder.paymentProvider] with `paymentProvider.orElse(null)`. */ - fun paymentProvider(paymentProvider: Optional) = - paymentProvider(paymentProvider.getOrNull()) - - /** - * Sets [Builder.paymentProvider] to an arbitrary JSON value. - * - * You should usually call [Builder.paymentProvider] with a well-typed [PaymentProvider] - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun paymentProvider(paymentProvider: JsonField) = apply { - body.paymentProvider(paymentProvider) - } - - /** - * The ID of this customer in an external payments solution, such as Stripe. This is used - * for creating charges or invoices in the external system via Orb. - */ - fun paymentProviderId(paymentProviderId: String?) = apply { - body.paymentProviderId(paymentProviderId) - } - - /** Alias for calling [Builder.paymentProviderId] with `paymentProviderId.orElse(null)`. */ - fun paymentProviderId(paymentProviderId: Optional) = - paymentProviderId(paymentProviderId.getOrNull()) - - /** - * Sets [Builder.paymentProviderId] to an arbitrary JSON value. - * - * You should usually call [Builder.paymentProviderId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun paymentProviderId(paymentProviderId: JsonField) = apply { - body.paymentProviderId(paymentProviderId) - } - - fun reportingConfiguration(reportingConfiguration: ReportingConfiguration?) = apply { - body.reportingConfiguration(reportingConfiguration) - } - - /** - * Alias for calling [Builder.reportingConfiguration] with - * `reportingConfiguration.orElse(null)`. - */ - fun reportingConfiguration(reportingConfiguration: Optional) = - reportingConfiguration(reportingConfiguration.getOrNull()) - - /** - * Sets [Builder.reportingConfiguration] to an arbitrary JSON value. - * - * You should usually call [Builder.reportingConfiguration] with a well-typed - * [ReportingConfiguration] value instead. This method is primarily for setting the field to - * an undocumented or not yet supported value. - */ - fun reportingConfiguration(reportingConfiguration: JsonField) = - apply { - body.reportingConfiguration(reportingConfiguration) - } - - fun shippingAddress(shippingAddress: ShippingAddress?) = apply { - body.shippingAddress(shippingAddress) - } - - /** Alias for calling [Builder.shippingAddress] with `shippingAddress.orElse(null)`. */ - fun shippingAddress(shippingAddress: Optional) = - shippingAddress(shippingAddress.getOrNull()) - - /** - * Sets [Builder.shippingAddress] to an arbitrary JSON value. - * - * You should usually call [Builder.shippingAddress] with a well-typed [ShippingAddress] - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun shippingAddress(shippingAddress: JsonField) = apply { - body.shippingAddress(shippingAddress) - } - - fun taxConfiguration(taxConfiguration: TaxConfiguration?) = apply { - body.taxConfiguration(taxConfiguration) - } - - /** Alias for calling [Builder.taxConfiguration] with `taxConfiguration.orElse(null)`. */ - fun taxConfiguration(taxConfiguration: Optional) = - taxConfiguration(taxConfiguration.getOrNull()) - - /** - * Sets [Builder.taxConfiguration] to an arbitrary JSON value. - * - * You should usually call [Builder.taxConfiguration] with a well-typed [TaxConfiguration] - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun taxConfiguration(taxConfiguration: JsonField) = apply { - body.taxConfiguration(taxConfiguration) - } - - /** - * Alias for calling [taxConfiguration] with `TaxConfiguration.ofNewAvalara(newAvalara)`. - */ - fun taxConfiguration(newAvalara: TaxConfiguration.NewAvalaraTaxConfiguration) = apply { - body.taxConfiguration(newAvalara) - } - - /** - * Alias for calling [taxConfiguration] with the following: - * ```java - * TaxConfiguration.NewAvalaraTaxConfiguration.builder() - * .taxProvider(CustomerUpdateParams.TaxConfiguration.NewAvalaraTaxConfiguration.TaxProvider.AVALARA) - * .taxExempt(taxExempt) - * .build() - * ``` - */ - fun newAvalaraTaxConfiguration(taxExempt: Boolean) = apply { - body.newAvalaraTaxConfiguration(taxExempt) - } - - /** Alias for calling [taxConfiguration] with `TaxConfiguration.ofNewTaxJar(newTaxJar)`. */ - fun taxConfiguration(newTaxJar: TaxConfiguration.NewTaxJarConfiguration) = apply { - body.taxConfiguration(newTaxJar) - } - - /** - * Alias for calling [taxConfiguration] with the following: - * ```java - * TaxConfiguration.NewTaxJarConfiguration.builder() - * .taxProvider(CustomerUpdateParams.TaxConfiguration.NewTaxJarConfiguration.TaxProvider.TAXJAR) - * .taxExempt(taxExempt) - * .build() - * ``` - */ - fun newTaxJarTaxConfiguration(taxExempt: Boolean) = apply { - body.newTaxJarTaxConfiguration(taxExempt) - } - - /** - * Tax IDs are commonly required to be displayed on customer invoices, which are added to - * the headers of invoices. - * - * ### Supported Tax ID Countries and Types - * |Country |Type |Description | - * |--------------------|------------|-------------------------------------------------------------------------------------------------------| - * |Andorra |`ad_nrt` |Andorran NRT Number | - * |Argentina |`ar_cuit` |Argentinian Tax ID Number | - * |Australia |`au_abn` |Australian Business Number (AU ABN) | - * |Australia |`au_arn` |Australian Taxation Office Reference Number | - * |Austria |`eu_vat` |European VAT Number | - * |Bahrain |`bh_vat` |Bahraini VAT Number | - * |Belgium |`eu_vat` |European VAT Number | - * |Bolivia |`bo_tin` |Bolivian Tax ID | - * |Brazil |`br_cnpj` |Brazilian CNPJ Number | - * |Brazil |`br_cpf` |Brazilian CPF Number | - * |Bulgaria |`bg_uic` |Bulgaria Unified Identification Code | - * |Bulgaria |`eu_vat` |European VAT Number | - * |Canada |`ca_bn` |Canadian BN | - * |Canada |`ca_gst_hst`|Canadian GST/HST Number | - * |Canada |`ca_pst_bc` |Canadian PST Number (British Columbia) | - * |Canada |`ca_pst_mb` |Canadian PST Number (Manitoba) | - * |Canada |`ca_pst_sk` |Canadian PST Number (Saskatchewan) | - * |Canada |`ca_qst` |Canadian QST Number (Québec) | - * |Chile |`cl_tin` |Chilean TIN | - * |China |`cn_tin` |Chinese Tax ID | - * |Colombia |`co_nit` |Colombian NIT Number | - * |Costa Rica |`cr_tin` |Costa Rican Tax ID | - * |Croatia |`eu_vat` |European VAT Number | - * |Cyprus |`eu_vat` |European VAT Number | - * |Czech Republic |`eu_vat` |European VAT Number | - * |Denmark |`eu_vat` |European VAT Number | - * |Dominican Republic |`do_rcn` |Dominican RCN Number | - * |Ecuador |`ec_ruc` |Ecuadorian RUC Number | - * |Egypt |`eg_tin` |Egyptian Tax Identification Number | - * |El Salvador |`sv_nit` |El Salvadorian NIT Number | - * |Estonia |`eu_vat` |European VAT Number | - * |EU |`eu_oss_vat`|European One Stop Shop VAT Number for non-Union scheme | - * |Finland |`eu_vat` |European VAT Number | - * |France |`eu_vat` |European VAT Number | - * |Georgia |`ge_vat` |Georgian VAT | - * |Germany |`eu_vat` |European VAT Number | - * |Greece |`eu_vat` |European VAT Number | - * |Hong Kong |`hk_br` |Hong Kong BR Number | - * |Hungary |`eu_vat` |European VAT Number | - * |Hungary |`hu_tin` |Hungary Tax Number (adószám) | - * |Iceland |`is_vat` |Icelandic VAT | - * |India |`in_gst` |Indian GST Number | - * |Indonesia |`id_npwp` |Indonesian NPWP Number | - * |Ireland |`eu_vat` |European VAT Number | - * |Israel |`il_vat` |Israel VAT | - * |Italy |`eu_vat` |European VAT Number | - * |Japan |`jp_cn` |Japanese Corporate Number (_Hōjin Bangō_) | - * |Japan |`jp_rn` |Japanese Registered Foreign Businesses' Registration Number (_Tōroku Kokugai Jigyōsha no Tōroku Bangō_)| - * |Japan |`jp_trn` |Japanese Tax Registration Number (_Tōroku Bangō_) | - * |Kazakhstan |`kz_bin` |Kazakhstani Business Identification Number | - * |Kenya |`ke_pin` |Kenya Revenue Authority Personal Identification Number | - * |Latvia |`eu_vat` |European VAT Number | - * |Liechtenstein |`li_uid` |Liechtensteinian UID Number | - * |Lithuania |`eu_vat` |European VAT Number | - * |Luxembourg |`eu_vat` |European VAT Number | - * |Malaysia |`my_frp` |Malaysian FRP Number | - * |Malaysia |`my_itn` |Malaysian ITN | - * |Malaysia |`my_sst` |Malaysian SST Number | - * |Malta |`eu_vat ` |European VAT Number | - * |Mexico |`mx_rfc` |Mexican RFC Number | - * |Netherlands |`eu_vat` |European VAT Number | - * |New Zealand |`nz_gst` |New Zealand GST Number | - * |Nigeria |`ng_tin` |Nigerian Tax Identification Number | - * |Norway |`no_vat` |Norwegian VAT Number | - * |Norway |`no_voec` |Norwegian VAT on e-commerce Number | - * |Oman |`om_vat` |Omani VAT Number | - * |Peru |`pe_ruc` |Peruvian RUC Number | - * |Philippines |`ph_tin ` |Philippines Tax Identification Number | - * |Poland |`eu_vat` |European VAT Number | - * |Portugal |`eu_vat` |European VAT Number | - * |Romania |`eu_vat` |European VAT Number | - * |Romania |`ro_tin` |Romanian Tax ID Number | - * |Russia |`ru_inn` |Russian INN | - * |Russia |`ru_kpp` |Russian KPP | - * |Saudi Arabia |`sa_vat` |Saudi Arabia VAT | - * |Serbia |`rs_pib` |Serbian PIB Number | - * |Singapore |`sg_gst` |Singaporean GST | - * |Singapore |`sg_uen` |Singaporean UEN | - * |Slovakia |`eu_vat` |European VAT Number | - * |Slovenia |`eu_vat` |European VAT Number | - * |Slovenia |`si_tin` |Slovenia Tax Number (davčna številka) | - * |South Africa |`za_vat` |South African VAT Number | - * |South Korea |`kr_brn` |Korean BRN | - * |Spain |`es_cif` |Spanish NIF Number (previously Spanish CIF Number) | - * |Spain |`eu_vat` |European VAT Number | - * |Sweden |`eu_vat` |European VAT Number | - * |Switzerland |`ch_vat` |Switzerland VAT Number | - * |Taiwan |`tw_vat` |Taiwanese VAT | - * |Thailand |`th_vat` |Thai VAT | - * |Turkey |`tr_tin` |Turkish Tax Identification Number | - * |Ukraine |`ua_vat` |Ukrainian VAT | - * |United Arab Emirates|`ae_trn` |United Arab Emirates TRN | - * |United Kingdom |`eu_vat` |Northern Ireland VAT Number | - * |United Kingdom |`gb_vat` |United Kingdom VAT Number | - * |United States |`us_ein` |United States EIN | - * |Uruguay |`uy_ruc` |Uruguayan RUC Number | - * |Venezuela |`ve_rif` |Venezuelan RIF Number | - * |Vietnam |`vn_tin` |Vietnamese Tax ID Number | - */ - fun taxId(taxId: TaxId?) = apply { body.taxId(taxId) } - - /** Alias for calling [Builder.taxId] with `taxId.orElse(null)`. */ - fun taxId(taxId: Optional) = taxId(taxId.getOrNull()) - - /** - * Sets [Builder.taxId] to an arbitrary JSON value. - * - * You should usually call [Builder.taxId] with a well-typed [TaxId] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun taxId(taxId: JsonField) = apply { body.taxId(taxId) } - - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { - body.additionalProperties(additionalBodyProperties) - } - - fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - body.putAdditionalProperty(key, value) - } - - fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = - apply { - body.putAllAdditionalProperties(additionalBodyProperties) - } - - fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } - - fun removeAllAdditionalBodyProperties(keys: Set) = apply { - body.removeAllAdditionalProperties(keys) - } - - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } - - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } - - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } - - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } - - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } - - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } - - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } - - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } - - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** Alias for calling [Builder.taxId] with `taxId.orElse(null)`. */ + fun taxId(taxId: Optional) = taxId(taxId.getOrNull()) - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** + * Sets [Builder.taxId] to an arbitrary JSON value. + * + * You should usually call [Builder.taxId] with a well-typed [TaxId] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun taxId(taxId: JsonField) = apply { this.taxId = taxId } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + */ + fun build(): Body = + Body( + accountingSyncConfiguration, + (additionalEmails ?: JsonMissing.of()).map { it.toImmutable() }, + autoCollection, + billingAddress, + currency, + email, + emailDelivery, + externalCustomerId, + hierarchy, + metadata, + name, + paymentProvider, + paymentProviderId, + reportingConfiguration, + shippingAddress, + taxConfiguration, + taxId, + additionalProperties.toMutableMap(), + ) } - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } + private var validated: Boolean = false - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) + fun validate(): Body = apply { + if (validated) { + return@apply } - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) + accountingSyncConfiguration().ifPresent { it.validate() } + additionalEmails() + autoCollection() + billingAddress().ifPresent { it.validate() } + currency() + email() + emailDelivery() + externalCustomerId() + hierarchy().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + name() + paymentProvider() + paymentProviderId() + reportingConfiguration().ifPresent { it.validate() } + shippingAddress().ifPresent { it.validate() } + taxConfiguration().ifPresent { it.validate() } + taxId().ifPresent { it.validate() } + validated = true } - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + return /* spotless:off */ other is Body && accountingSyncConfiguration == other.accountingSyncConfiguration && additionalEmails == other.additionalEmails && autoCollection == other.autoCollection && billingAddress == other.billingAddress && currency == other.currency && email == other.email && emailDelivery == other.emailDelivery && externalCustomerId == other.externalCustomerId && hierarchy == other.hierarchy && metadata == other.metadata && name == other.name && paymentProvider == other.paymentProvider && paymentProviderId == other.paymentProviderId && reportingConfiguration == other.reportingConfiguration && shippingAddress == other.shippingAddress && taxConfiguration == other.taxConfiguration && taxId == other.taxId && additionalProperties == other.additionalProperties /* spotless:on */ } - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(accountingSyncConfiguration, additionalEmails, autoCollection, billingAddress, currency, email, emailDelivery, externalCustomerId, hierarchy, metadata, name, paymentProvider, paymentProviderId, reportingConfiguration, shippingAddress, taxConfiguration, taxId, additionalProperties) } + /* spotless:on */ - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) - } + override fun hashCode(): Int = hashCode - /** - * Returns an immutable instance of [CustomerUpdateParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .customerId() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): CustomerUpdateParams = - CustomerUpdateParams( - checkRequired("customerId", customerId), - body.build(), - additionalHeaders.build(), - additionalQueryParams.build(), - ) + override fun toString() = + "Body{accountingSyncConfiguration=$accountingSyncConfiguration, additionalEmails=$additionalEmails, autoCollection=$autoCollection, billingAddress=$billingAddress, currency=$currency, email=$email, emailDelivery=$emailDelivery, externalCustomerId=$externalCustomerId, hierarchy=$hierarchy, metadata=$metadata, name=$name, paymentProvider=$paymentProvider, paymentProviderId=$paymentProviderId, reportingConfiguration=$reportingConfiguration, shippingAddress=$shippingAddress, taxConfiguration=$taxConfiguration, taxId=$taxId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class AccountingSyncConfiguration - @JsonCreator private constructor( - @JsonProperty("accounting_providers") - @ExcludeMissing - private val accountingProviders: JsonField> = JsonMissing.of(), - @JsonProperty("excluded") - @ExcludeMissing - private val excluded: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val accountingProviders: JsonField>, + private val excluded: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("accounting_providers") + @ExcludeMissing + accountingProviders: JsonField> = JsonMissing.of(), + @JsonProperty("excluded") + @ExcludeMissing + excluded: JsonField = JsonMissing.of(), + ) : this(accountingProviders, excluded, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -2290,21 +2327,15 @@ private constructor( */ @JsonProperty("excluded") @ExcludeMissing fun _excluded(): JsonField = excluded + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AccountingSyncConfiguration = apply { - if (validated) { - return@apply - } - - accountingProviders().ifPresent { it.forEach { it.validate() } } - excluded() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2416,24 +2447,39 @@ private constructor( AccountingSyncConfiguration( (accountingProviders ?: JsonMissing.of()).map { it.toImmutable() }, excluded, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): AccountingSyncConfiguration = apply { + if (validated) { + return@apply + } + + accountingProviders().ifPresent { it.forEach { it.validate() } } + excluded() + validated = true + } + class AccountingProvider - @JsonCreator private constructor( - @JsonProperty("external_provider_id") - @ExcludeMissing - private val externalProviderId: JsonField = JsonMissing.of(), - @JsonProperty("provider_type") - @ExcludeMissing - private val providerType: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val externalProviderId: JsonField, + private val providerType: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("external_provider_id") + @ExcludeMissing + externalProviderId: JsonField = JsonMissing.of(), + @JsonProperty("provider_type") + @ExcludeMissing + providerType: JsonField = JsonMissing.of(), + ) : this(externalProviderId, providerType, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2469,21 +2515,15 @@ private constructor( @ExcludeMissing fun _providerType(): JsonField = providerType + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AccountingProvider = apply { - if (validated) { - return@apply - } - - externalProviderId() - providerType() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2581,10 +2621,22 @@ private constructor( AccountingProvider( checkRequired("externalProviderId", externalProviderId), checkRequired("providerType", providerType), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AccountingProvider = apply { + if (validated) { + return@apply + } + + externalProviderId() + providerType() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2621,32 +2673,29 @@ private constructor( "AccountingSyncConfiguration{accountingProviders=$accountingProviders, excluded=$excluded, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingAddress - @JsonCreator private constructor( - @JsonProperty("city") - @ExcludeMissing - private val city: JsonField = JsonMissing.of(), - @JsonProperty("country") - @ExcludeMissing - private val country: JsonField = JsonMissing.of(), - @JsonProperty("line1") - @ExcludeMissing - private val line1: JsonField = JsonMissing.of(), - @JsonProperty("line2") - @ExcludeMissing - private val line2: JsonField = JsonMissing.of(), - @JsonProperty("postal_code") - @ExcludeMissing - private val postalCode: JsonField = JsonMissing.of(), - @JsonProperty("state") - @ExcludeMissing - private val state: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val city: JsonField, + private val country: JsonField, + private val line1: JsonField, + private val line2: JsonField, + private val postalCode: JsonField, + private val state: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("city") @ExcludeMissing city: JsonField = JsonMissing.of(), + @JsonProperty("country") @ExcludeMissing country: JsonField = JsonMissing.of(), + @JsonProperty("line1") @ExcludeMissing line1: JsonField = JsonMissing.of(), + @JsonProperty("line2") @ExcludeMissing line2: JsonField = JsonMissing.of(), + @JsonProperty("postal_code") + @ExcludeMissing + postalCode: JsonField = JsonMissing.of(), + @JsonProperty("state") @ExcludeMissing state: JsonField = JsonMissing.of(), + ) : this(city, country, line1, line2, postalCode, state, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -2728,25 +2777,15 @@ private constructor( */ @JsonProperty("state") @ExcludeMissing fun _state(): JsonField = state + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingAddress = apply { - if (validated) { - return@apply - } - - city() - country() - line1() - line2() - postalCode() - state() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2894,10 +2933,26 @@ private constructor( line2, postalCode, state, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingAddress = apply { + if (validated) { + return@apply + } + + city() + country() + line1() + line2() + postalCode() + state() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2917,20 +2972,23 @@ private constructor( } /** The hierarchical relationships for this customer. */ - @NoAutoDetect class Hierarchy - @JsonCreator private constructor( - @JsonProperty("child_customer_ids") - @ExcludeMissing - private val childCustomerIds: JsonField> = JsonMissing.of(), - @JsonProperty("parent_customer_id") - @ExcludeMissing - private val parentCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val childCustomerIds: JsonField>, + private val parentCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("child_customer_ids") + @ExcludeMissing + childCustomerIds: JsonField> = JsonMissing.of(), + @JsonProperty("parent_customer_id") + @ExcludeMissing + parentCustomerId: JsonField = JsonMissing.of(), + ) : this(childCustomerIds, parentCustomerId, mutableMapOf()) + /** * A list of child customer IDs to add to the hierarchy. The desired child customers must * not already be part of another hierarchy. @@ -2971,21 +3029,15 @@ private constructor( @ExcludeMissing fun _parentCustomerId(): JsonField = parentCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Hierarchy = apply { - if (validated) { - return@apply - } - - childCustomerIds() - parentCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3091,10 +3143,22 @@ private constructor( Hierarchy( (childCustomerIds ?: JsonMissing.of()).map { it.toImmutable() }, parentCustomerId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Hierarchy = apply { + if (validated) { + return@apply + } + + childCustomerIds() + parentCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -3118,27 +3182,20 @@ private constructor( * the value to `null`, and the entire metadata mapping can be cleared by setting `metadata` to * `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3182,7 +3239,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -3328,17 +3395,17 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ReportingConfiguration - @JsonCreator private constructor( - @JsonProperty("exempt") - @ExcludeMissing - private val exempt: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val exempt: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("exempt") @ExcludeMissing exempt: JsonField = JsonMissing.of() + ) : this(exempt, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -3352,20 +3419,15 @@ private constructor( */ @JsonProperty("exempt") @ExcludeMissing fun _exempt(): JsonField = exempt + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ReportingConfiguration = apply { - if (validated) { - return@apply - } - - exempt() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3439,10 +3501,21 @@ private constructor( fun build(): ReportingConfiguration = ReportingConfiguration( checkRequired("exempt", exempt), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): ReportingConfiguration = apply { + if (validated) { + return@apply + } + + exempt() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -3461,32 +3534,29 @@ private constructor( "ReportingConfiguration{exempt=$exempt, additionalProperties=$additionalProperties}" } - @NoAutoDetect class ShippingAddress - @JsonCreator private constructor( - @JsonProperty("city") - @ExcludeMissing - private val city: JsonField = JsonMissing.of(), - @JsonProperty("country") - @ExcludeMissing - private val country: JsonField = JsonMissing.of(), - @JsonProperty("line1") - @ExcludeMissing - private val line1: JsonField = JsonMissing.of(), - @JsonProperty("line2") - @ExcludeMissing - private val line2: JsonField = JsonMissing.of(), - @JsonProperty("postal_code") - @ExcludeMissing - private val postalCode: JsonField = JsonMissing.of(), - @JsonProperty("state") - @ExcludeMissing - private val state: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val city: JsonField, + private val country: JsonField, + private val line1: JsonField, + private val line2: JsonField, + private val postalCode: JsonField, + private val state: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("city") @ExcludeMissing city: JsonField = JsonMissing.of(), + @JsonProperty("country") @ExcludeMissing country: JsonField = JsonMissing.of(), + @JsonProperty("line1") @ExcludeMissing line1: JsonField = JsonMissing.of(), + @JsonProperty("line2") @ExcludeMissing line2: JsonField = JsonMissing.of(), + @JsonProperty("postal_code") + @ExcludeMissing + postalCode: JsonField = JsonMissing.of(), + @JsonProperty("state") @ExcludeMissing state: JsonField = JsonMissing.of(), + ) : this(city, country, line1, line2, postalCode, state, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -3568,25 +3638,15 @@ private constructor( */ @JsonProperty("state") @ExcludeMissing fun _state(): JsonField = state + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ShippingAddress = apply { - if (validated) { - return@apply - } - - city() - country() - line1() - line2() - postalCode() - state() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3734,10 +3794,26 @@ private constructor( line2, postalCode, state, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): ShippingAddress = apply { + if (validated) { + return@apply + } + + city() + country() + line1() + line2() + postalCode() + state() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -3908,23 +3984,27 @@ private constructor( } } - @NoAutoDetect class NewAvalaraTaxConfiguration - @JsonCreator private constructor( - @JsonProperty("tax_exempt") - @ExcludeMissing - private val taxExempt: JsonField = JsonMissing.of(), - @JsonProperty("tax_provider") - @ExcludeMissing - private val taxProvider: JsonField = JsonMissing.of(), - @JsonProperty("tax_exemption_code") - @ExcludeMissing - private val taxExemptionCode: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val taxExempt: JsonField, + private val taxProvider: JsonField, + private val taxExemptionCode: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tax_exempt") + @ExcludeMissing + taxExempt: JsonField = JsonMissing.of(), + @JsonProperty("tax_provider") + @ExcludeMissing + taxProvider: JsonField = JsonMissing.of(), + @JsonProperty("tax_exemption_code") + @ExcludeMissing + taxExemptionCode: JsonField = JsonMissing.of(), + ) : this(taxExempt, taxProvider, taxExemptionCode, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3976,22 +4056,15 @@ private constructor( @ExcludeMissing fun _taxExemptionCode(): JsonField = taxExemptionCode + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewAvalaraTaxConfiguration = apply { - if (validated) { - return@apply - } - - taxExempt() - taxProvider() - taxExemptionCode() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4112,10 +4185,23 @@ private constructor( checkRequired("taxExempt", taxExempt), checkRequired("taxProvider", taxProvider), taxExemptionCode, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewAvalaraTaxConfiguration = apply { + if (validated) { + return@apply + } + + taxExempt() + taxProvider() + taxExemptionCode() + validated = true + } + class TaxProvider @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4233,20 +4319,23 @@ private constructor( "NewAvalaraTaxConfiguration{taxExempt=$taxExempt, taxProvider=$taxProvider, taxExemptionCode=$taxExemptionCode, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewTaxJarConfiguration - @JsonCreator private constructor( - @JsonProperty("tax_exempt") - @ExcludeMissing - private val taxExempt: JsonField = JsonMissing.of(), - @JsonProperty("tax_provider") - @ExcludeMissing - private val taxProvider: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val taxExempt: JsonField, + private val taxProvider: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tax_exempt") + @ExcludeMissing + taxExempt: JsonField = JsonMissing.of(), + @JsonProperty("tax_provider") + @ExcludeMissing + taxProvider: JsonField = JsonMissing.of(), + ) : this(taxExempt, taxProvider, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4281,21 +4370,15 @@ private constructor( @ExcludeMissing fun _taxProvider(): JsonField = taxProvider + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewTaxJarConfiguration = apply { - if (validated) { - return@apply - } - - taxExempt() - taxProvider() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4392,10 +4475,22 @@ private constructor( NewTaxJarConfiguration( checkRequired("taxExempt", taxExempt), checkRequired("taxProvider", taxProvider), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewTaxJarConfiguration = apply { + if (validated) { + return@apply + } + + taxExempt() + taxProvider() + validated = true + } + class TaxProvider @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4620,21 +4715,21 @@ private constructor( * |Venezuela |`ve_rif` |Venezuelan RIF Number | * |Vietnam |`vn_tin` |Vietnamese Tax ID Number | */ - @NoAutoDetect class TaxId - @JsonCreator private constructor( - @JsonProperty("country") - @ExcludeMissing - private val country: JsonField = JsonMissing.of(), - @JsonProperty("type") @ExcludeMissing private val type: JsonField = JsonMissing.of(), - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val country: JsonField, + private val type: JsonField, + private val value: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("country") @ExcludeMissing country: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + @JsonProperty("value") @ExcludeMissing value: JsonField = JsonMissing.of(), + ) : this(country, type, value, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -4674,22 +4769,15 @@ private constructor( */ @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TaxId = apply { - if (validated) { - return@apply - } - - country() - type() - value() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4795,10 +4883,23 @@ private constructor( checkRequired("country", country), checkRequired("type", type), checkRequired("value", value), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): TaxId = apply { + if (validated) { + return@apply + } + + country() + type() + value() + validated = true + } + class Country @JsonCreator private constructor(private val value: JsonField) : Enum { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroup.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroup.kt index 15435828..6d6d80dd 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroup.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroup.kt @@ -10,12 +10,11 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -24,27 +23,41 @@ import kotlin.jvm.optionals.getOrNull * A dimensional price group is used to partition the result of a billable metric by a set of * dimensions. Prices in a price group must specify the parition used to derive their usage. */ -@NoAutoDetect class DimensionalPriceGroup -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("dimensions") - @ExcludeMissing - private val dimensions: JsonField> = JsonMissing.of(), - @JsonProperty("external_dimensional_price_group_id") - @ExcludeMissing - private val externalDimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("name") @ExcludeMissing private val name: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetricId: JsonField, + private val dimensions: JsonField>, + private val externalDimensionalPriceGroupId: JsonField, + private val metadata: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("dimensions") + @ExcludeMissing + dimensions: JsonField> = JsonMissing.of(), + @JsonProperty("external_dimensional_price_group_id") + @ExcludeMissing + externalDimensionalPriceGroupId: JsonField = JsonMissing.of(), + @JsonProperty("metadata") @ExcludeMissing metadata: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this( + id, + billableMetricId, + dimensions, + externalDimensionalPriceGroupId, + metadata, + name, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -147,25 +160,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceGroup = apply { - if (validated) { - return@apply - } - - id() - billableMetricId() - dimensions() - externalDimensionalPriceGroupId() - metadata().validate() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -357,36 +360,45 @@ private constructor( checkRequired("externalDimensionalPriceGroupId", externalDimensionalPriceGroupId), checkRequired("metadata", metadata), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceGroup = apply { + if (validated) { + return@apply + } + + id() + billableMetricId() + dimensions() + externalDimensionalPriceGroupId() + metadata().validate() + name() + validated = true + } + /** * User specified key-value pairs for the resource. If not present, this defaults to an empty * dictionary. Individual keys can be removed by setting the value to `null`, and the entire * metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -430,7 +442,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupCreateParams.kt index 376a8625..4c6ae635 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupCreateParams.kt @@ -10,15 +10,14 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -119,335 +118,247 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams + fun toBuilder() = Builder().from(this) - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("dimensions") - @ExcludeMissing - private val dimensions: JsonField> = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("external_dimensional_price_group_id") - @ExcludeMissing - private val externalDimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { + companion object { /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * Returns a mutable builder for constructing an instance of + * [DimensionalPriceGroupCreateParams]. + * + * The following fields are required: + * ```java + * .billableMetricId() + * .dimensions() + * .name() + * ``` */ - fun billableMetricId(): String = billableMetricId.getRequired("billable_metric_id") + @JvmStatic fun builder() = Builder() + } + + /** A builder for [DimensionalPriceGroupCreateParams]. */ + class Builder internal constructor() { + + private var body: Body.Builder = Body.builder() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from(dimensionalPriceGroupCreateParams: DimensionalPriceGroupCreateParams) = + apply { + body = dimensionalPriceGroupCreateParams.body.toBuilder() + additionalHeaders = dimensionalPriceGroupCreateParams.additionalHeaders.toBuilder() + additionalQueryParams = + dimensionalPriceGroupCreateParams.additionalQueryParams.toBuilder() + } + + fun billableMetricId(billableMetricId: String) = apply { + body.billableMetricId(billableMetricId) + } /** - * The set of keys (in order) used to disambiguate prices in the group. + * Sets [Builder.billableMetricId] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * You should usually call [Builder.billableMetricId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun dimensions(): List = dimensions.getRequired("dimensions") + fun billableMetricId(billableMetricId: JsonField) = apply { + body.billableMetricId(billableMetricId) + } - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun name(): String = name.getRequired("name") + /** The set of keys (in order) used to disambiguate prices in the group. */ + fun dimensions(dimensions: List) = apply { body.dimensions(dimensions) } /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Sets [Builder.dimensions] to an arbitrary JSON value. + * + * You should usually call [Builder.dimensions] with a well-typed `List` value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun externalDimensionalPriceGroupId(): Optional = - Optional.ofNullable( - externalDimensionalPriceGroupId.getNullable("external_dimensional_price_group_id") - ) + fun dimensions(dimensions: JsonField>) = apply { body.dimensions(dimensions) } /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. + * Adds a single [String] to [dimensions]. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * @throws IllegalStateException if the field was previously set to a non-list. */ - fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) + fun addDimension(dimension: String) = apply { body.addDimension(dimension) } + + fun name(name: String) = apply { body.name(name) } /** - * Returns the raw JSON value of [billableMetricId]. + * Sets [Builder.name] to an arbitrary JSON value. * - * Unlike [billableMetricId], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.name] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - @JsonProperty("billable_metric_id") - @ExcludeMissing - fun _billableMetricId(): JsonField = billableMetricId + fun name(name: JsonField) = apply { body.name(name) } + + fun externalDimensionalPriceGroupId(externalDimensionalPriceGroupId: String?) = apply { + body.externalDimensionalPriceGroupId(externalDimensionalPriceGroupId) + } /** - * Returns the raw JSON value of [dimensions]. - * - * Unlike [dimensions], this method doesn't throw if the JSON field has an unexpected type. + * Alias for calling [Builder.externalDimensionalPriceGroupId] with + * `externalDimensionalPriceGroupId.orElse(null)`. */ - @JsonProperty("dimensions") - @ExcludeMissing - fun _dimensions(): JsonField> = dimensions + fun externalDimensionalPriceGroupId(externalDimensionalPriceGroupId: Optional) = + externalDimensionalPriceGroupId(externalDimensionalPriceGroupId.getOrNull()) /** - * Returns the raw JSON value of [name]. + * Sets [Builder.externalDimensionalPriceGroupId] to an arbitrary JSON value. * - * Unlike [name], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.externalDimensionalPriceGroupId] with a well-typed + * [String] value instead. This method is primarily for setting the field to an undocumented + * or not yet supported value. */ - @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + fun externalDimensionalPriceGroupId(externalDimensionalPriceGroupId: JsonField) = + apply { + body.externalDimensionalPriceGroupId(externalDimensionalPriceGroupId) + } /** - * Returns the raw JSON value of [externalDimensionalPriceGroupId]. - * - * Unlike [externalDimensionalPriceGroupId], this method doesn't throw if the JSON field has - * an unexpected type. + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. */ - @JsonProperty("external_dimensional_price_group_id") - @ExcludeMissing - fun _externalDimensionalPriceGroupId(): JsonField = externalDimensionalPriceGroupId + fun metadata(metadata: Metadata?) = apply { body.metadata(metadata) } + + /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ + fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) /** - * Returns the raw JSON value of [metadata]. + * Sets [Builder.metadata] to an arbitrary JSON value. * - * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.metadata] with a well-typed [Metadata] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. */ - @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } + fun metadata(metadata: JsonField) = apply { body.metadata(metadata) } - billableMetricId() - dimensions() - name() - externalDimensionalPriceGroupId() - metadata().ifPresent { it.validate() } - validated = true + fun additionalBodyProperties(additionalBodyProperties: Map) = apply { + body.additionalProperties(additionalBodyProperties) } - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .billableMetricId() - * .dimensions() - * .name() - * ``` - */ - @JvmStatic fun builder() = Builder() + fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { + body.putAdditionalProperty(key, value) } - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var billableMetricId: JsonField? = null - private var dimensions: JsonField>? = null - private var name: JsonField? = null - private var externalDimensionalPriceGroupId: JsonField = JsonMissing.of() - private var metadata: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - billableMetricId = body.billableMetricId - dimensions = body.dimensions.map { it.toMutableList() } - name = body.name - externalDimensionalPriceGroupId = body.externalDimensionalPriceGroupId - metadata = body.metadata - additionalProperties = body.additionalProperties.toMutableMap() + fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = + apply { + body.putAllAdditionalProperties(additionalBodyProperties) } - fun billableMetricId(billableMetricId: String) = - billableMetricId(JsonField.of(billableMetricId)) + fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } - /** - * Sets [Builder.billableMetricId] to an arbitrary JSON value. - * - * You should usually call [Builder.billableMetricId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun billableMetricId(billableMetricId: JsonField) = apply { - this.billableMetricId = billableMetricId - } + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + body.removeAllAdditionalProperties(keys) + } - /** The set of keys (in order) used to disambiguate prices in the group. */ - fun dimensions(dimensions: List) = dimensions(JsonField.of(dimensions)) + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - /** - * Sets [Builder.dimensions] to an arbitrary JSON value. - * - * You should usually call [Builder.dimensions] with a well-typed `List` value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun dimensions(dimensions: JsonField>) = apply { - this.dimensions = dimensions.map { it.toMutableList() } - } + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - /** - * Adds a single [String] to [dimensions]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addDimension(dimension: String) = apply { - dimensions = - (dimensions ?: JsonField.of(mutableListOf())).also { - checkKnown("dimensions", it).add(dimension) - } - } + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) + } - fun name(name: String) = name(JsonField.of(name)) + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } - /** - * Sets [Builder.name] to an arbitrary JSON value. - * - * You should usually call [Builder.name] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun name(name: JsonField) = apply { this.name = name } + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - fun externalDimensionalPriceGroupId(externalDimensionalPriceGroupId: String?) = - externalDimensionalPriceGroupId( - JsonField.ofNullable(externalDimensionalPriceGroupId) - ) + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - /** - * Alias for calling [Builder.externalDimensionalPriceGroupId] with - * `externalDimensionalPriceGroupId.orElse(null)`. - */ - fun externalDimensionalPriceGroupId(externalDimensionalPriceGroupId: Optional) = - externalDimensionalPriceGroupId(externalDimensionalPriceGroupId.getOrNull()) + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } - /** - * Sets [Builder.externalDimensionalPriceGroupId] to an arbitrary JSON value. - * - * You should usually call [Builder.externalDimensionalPriceGroupId] with a well-typed - * [String] value instead. This method is primarily for setting the field to an - * undocumented or not yet supported value. - */ - fun externalDimensionalPriceGroupId( - externalDimensionalPriceGroupId: JsonField - ) = apply { this.externalDimensionalPriceGroupId = externalDimensionalPriceGroupId } + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by - * setting `metadata` to `null`. - */ - fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ - fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** - * Sets [Builder.metadata] to an arbitrary JSON value. - * - * You should usually call [Builder.metadata] with a well-typed [Metadata] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun metadata(metadata: JsonField) = apply { this.metadata = metadata } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .billableMetricId() - * .dimensions() - * .name() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body( - checkRequired("billableMetricId", billableMetricId), - checkRequired("dimensions", dimensions).map { it.toImmutable() }, - checkRequired("name", name), - externalDimensionalPriceGroupId, - metadata, - additionalProperties.toImmutable(), - ) + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } - override fun equals(other: Any?): Boolean { - if (this === other) { - return true + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) } - return /* spotless:off */ other is Body && billableMetricId == other.billableMetricId && dimensions == other.dimensions && name == other.name && externalDimensionalPriceGroupId == other.externalDimensionalPriceGroupId && metadata == other.metadata && additionalProperties == other.additionalProperties /* spotless:on */ + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) } - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(billableMetricId, dimensions, name, externalDimensionalPriceGroupId, metadata, additionalProperties) } - /* spotless:on */ + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } - override fun hashCode(): Int = hashCode + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - override fun toString() = - "Body{billableMetricId=$billableMetricId, dimensions=$dimensions, name=$name, externalDimensionalPriceGroupId=$externalDimensionalPriceGroupId, metadata=$metadata, additionalProperties=$additionalProperties}" - } + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - fun toBuilder() = Builder().from(this) + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } - companion object { + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } /** - * Returns a mutable builder for constructing an instance of - * [DimensionalPriceGroupCreateParams]. + * Returns an immutable instance of [DimensionalPriceGroupCreateParams]. + * + * Further updates to this [Builder] will not mutate the returned instance. * * The following fields are required: * ```java @@ -455,250 +366,354 @@ private constructor( * .dimensions() * .name() * ``` + * + * @throws IllegalStateException if any required field is unset. */ - @JvmStatic fun builder() = Builder() + fun build(): DimensionalPriceGroupCreateParams = + DimensionalPriceGroupCreateParams( + body.build(), + additionalHeaders.build(), + additionalQueryParams.build(), + ) } - /** A builder for [DimensionalPriceGroupCreateParams]. */ - @NoAutoDetect - class Builder internal constructor() { + @JvmSynthetic internal fun _body(): Body = body - private var body: Body.Builder = Body.builder() - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + override fun _headers(): Headers = additionalHeaders - @JvmSynthetic - internal fun from(dimensionalPriceGroupCreateParams: DimensionalPriceGroupCreateParams) = - apply { - body = dimensionalPriceGroupCreateParams.body.toBuilder() - additionalHeaders = dimensionalPriceGroupCreateParams.additionalHeaders.toBuilder() - additionalQueryParams = - dimensionalPriceGroupCreateParams.additionalQueryParams.toBuilder() - } + override fun _queryParams(): QueryParams = additionalQueryParams - fun billableMetricId(billableMetricId: String) = apply { - body.billableMetricId(billableMetricId) - } + class Body + private constructor( + private val billableMetricId: JsonField, + private val dimensions: JsonField>, + private val name: JsonField, + private val externalDimensionalPriceGroupId: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("dimensions") + @ExcludeMissing + dimensions: JsonField> = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("external_dimensional_price_group_id") + @ExcludeMissing + externalDimensionalPriceGroupId: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + billableMetricId, + dimensions, + name, + externalDimensionalPriceGroupId, + metadata, + mutableMapOf(), + ) /** - * Sets [Builder.billableMetricId] to an arbitrary JSON value. - * - * You should usually call [Builder.billableMetricId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun billableMetricId(billableMetricId: JsonField) = apply { - body.billableMetricId(billableMetricId) - } - - /** The set of keys (in order) used to disambiguate prices in the group. */ - fun dimensions(dimensions: List) = apply { body.dimensions(dimensions) } + fun billableMetricId(): String = billableMetricId.getRequired("billable_metric_id") /** - * Sets [Builder.dimensions] to an arbitrary JSON value. + * The set of keys (in order) used to disambiguate prices in the group. * - * You should usually call [Builder.dimensions] with a well-typed `List` value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun dimensions(dimensions: JsonField>) = apply { body.dimensions(dimensions) } + fun dimensions(): List = dimensions.getRequired("dimensions") /** - * Adds a single [String] to [dimensions]. - * - * @throws IllegalStateException if the field was previously set to a non-list. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun addDimension(dimension: String) = apply { body.addDimension(dimension) } + fun name(): String = name.getRequired("name") - fun name(name: String) = apply { body.name(name) } + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun externalDimensionalPriceGroupId(): Optional = + Optional.ofNullable( + externalDimensionalPriceGroupId.getNullable("external_dimensional_price_group_id") + ) /** - * Sets [Builder.name] to an arbitrary JSON value. + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. * - * You should usually call [Builder.name] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun name(name: JsonField) = apply { body.name(name) } - - fun externalDimensionalPriceGroupId(externalDimensionalPriceGroupId: String?) = apply { - body.externalDimensionalPriceGroupId(externalDimensionalPriceGroupId) - } + fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) /** - * Alias for calling [Builder.externalDimensionalPriceGroupId] with - * `externalDimensionalPriceGroupId.orElse(null)`. + * Returns the raw JSON value of [billableMetricId]. + * + * Unlike [billableMetricId], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun externalDimensionalPriceGroupId(externalDimensionalPriceGroupId: Optional) = - externalDimensionalPriceGroupId(externalDimensionalPriceGroupId.getOrNull()) + @JsonProperty("billable_metric_id") + @ExcludeMissing + fun _billableMetricId(): JsonField = billableMetricId /** - * Sets [Builder.externalDimensionalPriceGroupId] to an arbitrary JSON value. + * Returns the raw JSON value of [dimensions]. * - * You should usually call [Builder.externalDimensionalPriceGroupId] with a well-typed - * [String] value instead. This method is primarily for setting the field to an undocumented - * or not yet supported value. + * Unlike [dimensions], this method doesn't throw if the JSON field has an unexpected type. */ - fun externalDimensionalPriceGroupId(externalDimensionalPriceGroupId: JsonField) = - apply { - body.externalDimensionalPriceGroupId(externalDimensionalPriceGroupId) - } + @JsonProperty("dimensions") + @ExcludeMissing + fun _dimensions(): JsonField> = dimensions /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. + * Returns the raw JSON value of [name]. + * + * Unlike [name], this method doesn't throw if the JSON field has an unexpected type. */ - fun metadata(metadata: Metadata?) = apply { body.metadata(metadata) } + @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name - /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ - fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) + /** + * Returns the raw JSON value of [externalDimensionalPriceGroupId]. + * + * Unlike [externalDimensionalPriceGroupId], this method doesn't throw if the JSON field has + * an unexpected type. + */ + @JsonProperty("external_dimensional_price_group_id") + @ExcludeMissing + fun _externalDimensionalPriceGroupId(): JsonField = externalDimensionalPriceGroupId /** - * Sets [Builder.metadata] to an arbitrary JSON value. + * Returns the raw JSON value of [metadata]. * - * You should usually call [Builder.metadata] with a well-typed [Metadata] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. + * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. */ - fun metadata(metadata: JsonField) = apply { body.metadata(metadata) } + @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { - body.additionalProperties(additionalBodyProperties) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } - fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - body.putAdditionalProperty(key, value) + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .billableMetricId() + * .dimensions() + * .name() + * ``` + */ + @JvmStatic fun builder() = Builder() } - fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = - apply { - body.putAllAdditionalProperties(additionalBodyProperties) + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var billableMetricId: JsonField? = null + private var dimensions: JsonField>? = null + private var name: JsonField? = null + private var externalDimensionalPriceGroupId: JsonField = JsonMissing.of() + private var metadata: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + billableMetricId = body.billableMetricId + dimensions = body.dimensions.map { it.toMutableList() } + name = body.name + externalDimensionalPriceGroupId = body.externalDimensionalPriceGroupId + metadata = body.metadata + additionalProperties = body.additionalProperties.toMutableMap() } - fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + fun billableMetricId(billableMetricId: String) = + billableMetricId(JsonField.of(billableMetricId)) + + /** + * Sets [Builder.billableMetricId] to an arbitrary JSON value. + * + * You should usually call [Builder.billableMetricId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun billableMetricId(billableMetricId: JsonField) = apply { + this.billableMetricId = billableMetricId + } - fun removeAllAdditionalBodyProperties(keys: Set) = apply { - body.removeAllAdditionalProperties(keys) - } + /** The set of keys (in order) used to disambiguate prices in the group. */ + fun dimensions(dimensions: List) = dimensions(JsonField.of(dimensions)) - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** + * Sets [Builder.dimensions] to an arbitrary JSON value. + * + * You should usually call [Builder.dimensions] with a well-typed `List` value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun dimensions(dimensions: JsonField>) = apply { + this.dimensions = dimensions.map { it.toMutableList() } + } - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** + * Adds a single [String] to [dimensions]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addDimension(dimension: String) = apply { + dimensions = + (dimensions ?: JsonField.of(mutableListOf())).also { + checkKnown("dimensions", it).add(dimension) + } + } - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } + fun name(name: String) = name(JsonField.of(name)) - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } + /** + * Sets [Builder.name] to an arbitrary JSON value. + * + * You should usually call [Builder.name] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun name(name: JsonField) = apply { this.name = name } - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + fun externalDimensionalPriceGroupId(externalDimensionalPriceGroupId: String?) = + externalDimensionalPriceGroupId( + JsonField.ofNullable(externalDimensionalPriceGroupId) + ) - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** + * Alias for calling [Builder.externalDimensionalPriceGroupId] with + * `externalDimensionalPriceGroupId.orElse(null)`. + */ + fun externalDimensionalPriceGroupId(externalDimensionalPriceGroupId: Optional) = + externalDimensionalPriceGroupId(externalDimensionalPriceGroupId.getOrNull()) - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } + /** + * Sets [Builder.externalDimensionalPriceGroupId] to an arbitrary JSON value. + * + * You should usually call [Builder.externalDimensionalPriceGroupId] with a well-typed + * [String] value instead. This method is primarily for setting the field to an + * undocumented or not yet supported value. + */ + fun externalDimensionalPriceGroupId( + externalDimensionalPriceGroupId: JsonField + ) = apply { this.externalDimensionalPriceGroupId = externalDimensionalPriceGroupId } - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by + * setting `metadata` to `null`. + */ + fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ + fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** + * Sets [Builder.metadata] to an arbitrary JSON value. + * + * You should usually call [Builder.metadata] with a well-typed [Metadata] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun metadata(metadata: JsonField) = apply { this.metadata = metadata } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .billableMetricId() + * .dimensions() + * .name() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body( + checkRequired("billableMetricId", billableMetricId), + checkRequired("dimensions", dimensions).map { it.toImmutable() }, + checkRequired("name", name), + externalDimensionalPriceGroupId, + metadata, + additionalProperties.toMutableMap(), + ) } - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } + private var validated: Boolean = false - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) + fun validate(): Body = apply { + if (validated) { + return@apply } - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) + billableMetricId() + dimensions() + name() + externalDimensionalPriceGroupId() + metadata().ifPresent { it.validate() } + validated = true } - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + return /* spotless:off */ other is Body && billableMetricId == other.billableMetricId && dimensions == other.dimensions && name == other.name && externalDimensionalPriceGroupId == other.externalDimensionalPriceGroupId && metadata == other.metadata && additionalProperties == other.additionalProperties /* spotless:on */ } - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(billableMetricId, dimensions, name, externalDimensionalPriceGroupId, metadata, additionalProperties) } + /* spotless:on */ - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) - } + override fun hashCode(): Int = hashCode - /** - * Returns an immutable instance of [DimensionalPriceGroupCreateParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .billableMetricId() - * .dimensions() - * .name() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): DimensionalPriceGroupCreateParams = - DimensionalPriceGroupCreateParams( - body.build(), - additionalHeaders.build(), - additionalQueryParams.build(), - ) + override fun toString() = + "Body{billableMetricId=$billableMetricId, dimensions=$dimensions, name=$name, externalDimensionalPriceGroupId=$externalDimensionalPriceGroupId, metadata=$metadata, additionalProperties=$additionalProperties}" } /** @@ -706,27 +721,20 @@ private constructor( * the value to `null`, and the entire metadata mapping can be cleared by setting `metadata` to * `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -770,7 +778,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupExternalDimensionalPriceGroupIdRetrieveParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupExternalDimensionalPriceGroupIdRetrieveParams.kt index f453e236..2ede0606 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupExternalDimensionalPriceGroupIdRetrieveParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupExternalDimensionalPriceGroupIdRetrieveParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -23,16 +22,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> externalDimensionalPriceGroupId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - fun toBuilder() = Builder().from(this) companion object { @@ -50,7 +39,6 @@ private constructor( } /** A builder for [DimensionalPriceGroupExternalDimensionalPriceGroupIdRetrieveParams]. */ - @NoAutoDetect class Builder internal constructor() { private var externalDimensionalPriceGroupId: String? = null @@ -197,6 +185,16 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> externalDimensionalPriceGroupId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupListPage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupListPage.kt index 00239a5a..9010b26a 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupListPage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupListPage.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.blocking.DimensionalPriceGroupService +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.stream.Stream @@ -84,18 +82,19 @@ private constructor( ) = DimensionalPriceGroupListPage(dimensionalPriceGroupsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") - private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -108,9 +107,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -182,7 +187,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupListPageAsync.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupListPageAsync.kt index 84fd9464..c738ed60 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupListPageAsync.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupListPageAsync.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.async.DimensionalPriceGroupServiceAsync +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.concurrent.CompletableFuture @@ -86,18 +84,19 @@ private constructor( ) = DimensionalPriceGroupListPageAsync(dimensionalPriceGroupsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") - private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -110,9 +109,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -184,7 +189,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupListParams.kt index 8d959540..d4c6bd5f 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupListParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams @@ -32,17 +31,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - cursor?.let { put("cursor", it) } - limit?.let { put("limit", it.toString()) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -57,7 +45,6 @@ private constructor( } /** A builder for [DimensionalPriceGroupListParams]. */ - @NoAutoDetect class Builder internal constructor() { private var cursor: String? = null @@ -209,6 +196,17 @@ private constructor( ) } + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + cursor?.let { put("cursor", it) } + limit?.let { put("limit", it.toString()) } + putAll(additionalQueryParams) + } + .build() + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupRetrieveParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupRetrieveParams.kt index 2aa8abbd..80e454bd 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupRetrieveParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupRetrieveParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -23,16 +22,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> dimensionalPriceGroupId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - fun toBuilder() = Builder().from(this) companion object { @@ -50,7 +39,6 @@ private constructor( } /** A builder for [DimensionalPriceGroupRetrieveParams]. */ - @NoAutoDetect class Builder internal constructor() { private var dimensionalPriceGroupId: String? = null @@ -189,6 +177,16 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> dimensionalPriceGroupId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroups.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroups.kt index 9fd956fc..f4ba6a0b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroups.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroups.kt @@ -10,27 +10,30 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects -@NoAutoDetect class DimensionalPriceGroups -@JsonCreator private constructor( - @JsonProperty("data") - @ExcludeMissing - private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - @ExcludeMissing - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") + @ExcludeMissing + data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + @ExcludeMissing + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -61,21 +64,15 @@ private constructor( @ExcludeMissing fun _paginationMetadata(): JsonField = paginationMetadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceGroups = apply { - if (validated) { - return@apply - } - - data().forEach { it.validate() } - paginationMetadata().validate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -182,10 +179,22 @@ private constructor( DimensionalPriceGroups( checkRequired("data", data).map { it.toImmutable() }, checkRequired("paginationMetadata", paginationMetadata), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceGroups = apply { + if (validated) { + return@apply + } + + data().forEach { it.validate() } + paginationMetadata().validate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EvaluatePriceGroup.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EvaluatePriceGroup.kt index 4c02122d..e4846fca 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EvaluatePriceGroup.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EvaluatePriceGroup.kt @@ -19,32 +19,32 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional -@NoAutoDetect class EvaluatePriceGroup -@JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("grouping_values") - @ExcludeMissing - private val groupingValues: JsonField> = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val groupingValues: JsonField>, + private val quantity: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("grouping_values") + @ExcludeMissing + groupingValues: JsonField> = JsonMissing.of(), + @JsonProperty("quantity") @ExcludeMissing quantity: JsonField = JsonMissing.of(), + ) : this(amount, groupingValues, quantity, mutableMapOf()) + /** * The price's output for the group * @@ -92,22 +92,15 @@ private constructor( */ @JsonProperty("quantity") @ExcludeMissing fun _quantity(): JsonField = quantity + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): EvaluatePriceGroup = apply { - if (validated) { - return@apply - } - - amount() - groupingValues().forEach { it.validate() } - quantity() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -238,10 +231,23 @@ private constructor( checkRequired("amount", amount), checkRequired("groupingValues", groupingValues).map { it.toImmutable() }, checkRequired("quantity", quantity), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): EvaluatePriceGroup = apply { + if (validated) { + return@apply + } + + amount() + groupingValues().forEach { it.validate() } + quantity() + validated = true + } + @JsonDeserialize(using = GroupingValue.Deserializer::class) @JsonSerialize(using = GroupingValue.Serializer::class) class GroupingValue diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCloseParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCloseParams.kt index c92aeda8..532fad3d 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCloseParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCloseParams.kt @@ -2,13 +2,15 @@ package com.withorb.api.models +import com.fasterxml.jackson.annotation.JsonAnyGetter +import com.fasterxml.jackson.annotation.JsonAnySetter +import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.toImmutable +import java.util.Collections import java.util.Objects import java.util.Optional @@ -22,7 +24,7 @@ private constructor( private val backfillId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: Map, + private val additionalBodyProperties: MutableMap, ) : Params { fun backfillId(): String = backfillId @@ -31,21 +33,15 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _additionalBodyProperties(): Map = additionalBodyProperties - - @JvmSynthetic - internal fun _body(): Optional> = - Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) - - fun _pathParam(index: Int): String = - when (index) { - 0 -> backfillId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders + @JsonAnySetter + private fun putAdditionalBodyProperty(key: String, value: JsonValue) { + additionalBodyProperties.put(key, value) + } - override fun _queryParams(): QueryParams = additionalQueryParams + @JsonAnyGetter + @ExcludeMissing + fun _additionalBodyProperties(): Map = + Collections.unmodifiableMap(additionalBodyProperties) fun toBuilder() = Builder().from(this) @@ -63,7 +59,6 @@ private constructor( } /** A builder for [EventBackfillCloseParams]. */ - @NoAutoDetect class Builder internal constructor() { private var backfillId: String? = null @@ -219,10 +214,24 @@ private constructor( checkRequired("backfillId", backfillId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toImmutable(), + additionalBodyProperties.toMutableMap(), ) } + @JvmSynthetic + internal fun _body(): Optional> = + Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) + + fun _pathParam(index: Int): String = + when (index) { + 0 -> backfillId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCloseResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCloseResponse.kt index bfbc26ce..65a057e2 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCloseResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCloseResponse.kt @@ -11,12 +11,10 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -25,44 +23,68 @@ import kotlin.jvm.optionals.getOrNull * A backfill represents an update to historical usage data, adding or replacing events in a * timeframe. */ -@NoAutoDetect class EventBackfillCloseResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("close_time") - @ExcludeMissing - private val closeTime: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("customer_id") - @ExcludeMissing - private val customerId: JsonField = JsonMissing.of(), - @JsonProperty("events_ingested") - @ExcludeMissing - private val eventsIngested: JsonField = JsonMissing.of(), - @JsonProperty("replace_existing_events") - @ExcludeMissing - private val replaceExistingEvents: JsonField = JsonMissing.of(), - @JsonProperty("reverted_at") - @ExcludeMissing - private val revertedAt: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_end") - @ExcludeMissing - private val timeframeEnd: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_start") - @ExcludeMissing - private val timeframeStart: JsonField = JsonMissing.of(), - @JsonProperty("deprecation_filter") - @ExcludeMissing - private val deprecationFilter: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val closeTime: JsonField, + private val createdAt: JsonField, + private val customerId: JsonField, + private val eventsIngested: JsonField, + private val replaceExistingEvents: JsonField, + private val revertedAt: JsonField, + private val status: JsonField, + private val timeframeEnd: JsonField, + private val timeframeStart: JsonField, + private val deprecationFilter: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("close_time") + @ExcludeMissing + closeTime: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("customer_id") + @ExcludeMissing + customerId: JsonField = JsonMissing.of(), + @JsonProperty("events_ingested") + @ExcludeMissing + eventsIngested: JsonField = JsonMissing.of(), + @JsonProperty("replace_existing_events") + @ExcludeMissing + replaceExistingEvents: JsonField = JsonMissing.of(), + @JsonProperty("reverted_at") + @ExcludeMissing + revertedAt: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_end") + @ExcludeMissing + timeframeEnd: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_start") + @ExcludeMissing + timeframeStart: JsonField = JsonMissing.of(), + @JsonProperty("deprecation_filter") + @ExcludeMissing + deprecationFilter: JsonField = JsonMissing.of(), + ) : this( + id, + closeTime, + createdAt, + customerId, + eventsIngested, + replaceExistingEvents, + revertedAt, + status, + timeframeEnd, + timeframeStart, + deprecationFilter, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -247,30 +269,15 @@ private constructor( @ExcludeMissing fun _deprecationFilter(): JsonField = deprecationFilter + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): EventBackfillCloseResponse = apply { - if (validated) { - return@apply - } - - id() - closeTime() - createdAt() - customerId() - eventsIngested() - replaceExistingEvents() - revertedAt() - status() - timeframeEnd() - timeframeStart() - deprecationFilter() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -548,10 +555,31 @@ private constructor( checkRequired("timeframeEnd", timeframeEnd), checkRequired("timeframeStart", timeframeStart), deprecationFilter, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): EventBackfillCloseResponse = apply { + if (validated) { + return@apply + } + + id() + closeTime() + createdAt() + customerId() + eventsIngested() + replaceExistingEvents() + revertedAt() + status() + timeframeEnd() + timeframeStart() + deprecationFilter() + validated = true + } + /** The status of the backfill. */ class Status @JsonCreator private constructor(private val value: JsonField) : Enum { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCreateParams.kt index af8d66df..5097b8a1 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCreateParams.kt @@ -10,15 +10,13 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -184,757 +182,779 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body + fun toBuilder() = Builder().from(this) - override fun _headers(): Headers = additionalHeaders + companion object { - override fun _queryParams(): QueryParams = additionalQueryParams + /** + * Returns a mutable builder for constructing an instance of [EventBackfillCreateParams]. + * + * The following fields are required: + * ```java + * .timeframeEnd() + * .timeframeStart() + * ``` + */ + @JvmStatic fun builder() = Builder() + } - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("timeframe_end") - @ExcludeMissing - private val timeframeEnd: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_start") - @ExcludeMissing - private val timeframeStart: JsonField = JsonMissing.of(), - @JsonProperty("close_time") - @ExcludeMissing - private val closeTime: JsonField = JsonMissing.of(), - @JsonProperty("customer_id") - @ExcludeMissing - private val customerId: JsonField = JsonMissing.of(), - @JsonProperty("deprecation_filter") - @ExcludeMissing - private val deprecationFilter: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonProperty("replace_existing_events") - @ExcludeMissing - private val replaceExistingEvents: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { + /** A builder for [EventBackfillCreateParams]. */ + class Builder internal constructor() { + + private var body: Body.Builder = Body.builder() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from(eventBackfillCreateParams: EventBackfillCreateParams) = apply { + body = eventBackfillCreateParams.body.toBuilder() + additionalHeaders = eventBackfillCreateParams.additionalHeaders.toBuilder() + additionalQueryParams = eventBackfillCreateParams.additionalQueryParams.toBuilder() + } /** * The (exclusive) end of the usage timeframe affected by this backfill. By default, Orb * allows backfills up to 10 days in duration at a time. Reach out to discuss extending this * limit and your use case. + */ + fun timeframeEnd(timeframeEnd: OffsetDateTime) = apply { body.timeframeEnd(timeframeEnd) } + + /** + * Sets [Builder.timeframeEnd] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * You should usually call [Builder.timeframeEnd] with a well-typed [OffsetDateTime] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun timeframeEnd(): OffsetDateTime = timeframeEnd.getRequired("timeframe_end") + fun timeframeEnd(timeframeEnd: JsonField) = apply { + body.timeframeEnd(timeframeEnd) + } /** * The (inclusive) start of the usage timeframe affected by this backfill. By default, Orb * allows backfills up to 10 days in duration at a time. Reach out to discuss extending this * limit and your use case. + */ + fun timeframeStart(timeframeStart: OffsetDateTime) = apply { + body.timeframeStart(timeframeStart) + } + + /** + * Sets [Builder.timeframeStart] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * You should usually call [Builder.timeframeStart] with a well-typed [OffsetDateTime] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun timeframeStart(): OffsetDateTime = timeframeStart.getRequired("timeframe_start") + fun timeframeStart(timeframeStart: JsonField) = apply { + body.timeframeStart(timeframeStart) + } /** * The time at which no more events will be accepted for this backfill. The backfill will * automatically begin reflecting throughout Orb at the close time. If not specified, it * will default to 1 day after the creation of the backfill. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). */ - fun closeTime(): Optional = - Optional.ofNullable(closeTime.getNullable("close_time")) + fun closeTime(closeTime: OffsetDateTime?) = apply { body.closeTime(closeTime) } - /** - * The Orb-generated ID of the customer to which this backfill is scoped. Omitting this - * field will scope the backfill to all customers. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun customerId(): Optional = - Optional.ofNullable(customerId.getNullable("customer_id")) + /** Alias for calling [Builder.closeTime] with `closeTime.orElse(null)`. */ + fun closeTime(closeTime: Optional) = closeTime(closeTime.getOrNull()) /** - * A boolean [computed property](/extensibility/advanced-metrics#computed-properties) used - * to filter the set of events to deprecate + * Sets [Builder.closeTime] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.closeTime] with a well-typed [OffsetDateTime] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun deprecationFilter(): Optional = - Optional.ofNullable(deprecationFilter.getNullable("deprecation_filter")) + fun closeTime(closeTime: JsonField) = apply { body.closeTime(closeTime) } /** - * The external customer ID of the customer to which this backfill is scoped. Omitting this + * The Orb-generated ID of the customer to which this backfill is scoped. Omitting this * field will scope the backfill to all customers. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). */ - fun externalCustomerId(): Optional = - Optional.ofNullable(externalCustomerId.getNullable("external_customer_id")) + fun customerId(customerId: String?) = apply { body.customerId(customerId) } + + /** Alias for calling [Builder.customerId] with `customerId.orElse(null)`. */ + fun customerId(customerId: Optional) = customerId(customerId.getOrNull()) /** - * If true, replaces all existing events in the timeframe with the newly ingested events. If - * false, adds the newly ingested events to the existing events. + * Sets [Builder.customerId] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.customerId] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. */ - fun replaceExistingEvents(): Optional = - Optional.ofNullable(replaceExistingEvents.getNullable("replace_existing_events")) + fun customerId(customerId: JsonField) = apply { body.customerId(customerId) } /** - * Returns the raw JSON value of [timeframeEnd]. - * - * Unlike [timeframeEnd], this method doesn't throw if the JSON field has an unexpected - * type. + * A boolean [computed property](/extensibility/advanced-metrics#computed-properties) used + * to filter the set of events to deprecate */ - @JsonProperty("timeframe_end") - @ExcludeMissing - fun _timeframeEnd(): JsonField = timeframeEnd + fun deprecationFilter(deprecationFilter: String?) = apply { + body.deprecationFilter(deprecationFilter) + } + + /** Alias for calling [Builder.deprecationFilter] with `deprecationFilter.orElse(null)`. */ + fun deprecationFilter(deprecationFilter: Optional) = + deprecationFilter(deprecationFilter.getOrNull()) /** - * Returns the raw JSON value of [timeframeStart]. + * Sets [Builder.deprecationFilter] to an arbitrary JSON value. * - * Unlike [timeframeStart], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.deprecationFilter] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("timeframe_start") - @ExcludeMissing - fun _timeframeStart(): JsonField = timeframeStart + fun deprecationFilter(deprecationFilter: JsonField) = apply { + body.deprecationFilter(deprecationFilter) + } /** - * Returns the raw JSON value of [closeTime]. - * - * Unlike [closeTime], this method doesn't throw if the JSON field has an unexpected type. + * The external customer ID of the customer to which this backfill is scoped. Omitting this + * field will scope the backfill to all customers. */ - @JsonProperty("close_time") - @ExcludeMissing - fun _closeTime(): JsonField = closeTime + fun externalCustomerId(externalCustomerId: String?) = apply { + body.externalCustomerId(externalCustomerId) + } /** - * Returns the raw JSON value of [customerId]. - * - * Unlike [customerId], this method doesn't throw if the JSON field has an unexpected type. + * Alias for calling [Builder.externalCustomerId] with `externalCustomerId.orElse(null)`. */ - @JsonProperty("customer_id") - @ExcludeMissing - fun _customerId(): JsonField = customerId + fun externalCustomerId(externalCustomerId: Optional) = + externalCustomerId(externalCustomerId.getOrNull()) /** - * Returns the raw JSON value of [deprecationFilter]. + * Sets [Builder.externalCustomerId] to an arbitrary JSON value. * - * Unlike [deprecationFilter], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.externalCustomerId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("deprecation_filter") - @ExcludeMissing - fun _deprecationFilter(): JsonField = deprecationFilter + fun externalCustomerId(externalCustomerId: JsonField) = apply { + body.externalCustomerId(externalCustomerId) + } /** - * Returns the raw JSON value of [externalCustomerId]. - * - * Unlike [externalCustomerId], this method doesn't throw if the JSON field has an - * unexpected type. + * If true, replaces all existing events in the timeframe with the newly ingested events. If + * false, adds the newly ingested events to the existing events. */ - @JsonProperty("external_customer_id") - @ExcludeMissing - fun _externalCustomerId(): JsonField = externalCustomerId + fun replaceExistingEvents(replaceExistingEvents: Boolean) = apply { + body.replaceExistingEvents(replaceExistingEvents) + } /** - * Returns the raw JSON value of [replaceExistingEvents]. + * Sets [Builder.replaceExistingEvents] to an arbitrary JSON value. * - * Unlike [replaceExistingEvents], this method doesn't throw if the JSON field has an - * unexpected type. + * You should usually call [Builder.replaceExistingEvents] with a well-typed [Boolean] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("replace_existing_events") - @ExcludeMissing - fun _replaceExistingEvents(): JsonField = replaceExistingEvents + fun replaceExistingEvents(replaceExistingEvents: JsonField) = apply { + body.replaceExistingEvents(replaceExistingEvents) + } - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun additionalBodyProperties(additionalBodyProperties: Map) = apply { + body.additionalProperties(additionalBodyProperties) + } - private var validated: Boolean = false + fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { + body.putAdditionalProperty(key, value) + } - fun validate(): Body = apply { - if (validated) { - return@apply + fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = + apply { + body.putAllAdditionalProperties(additionalBodyProperties) } - timeframeEnd() - timeframeStart() - closeTime() - customerId() - deprecationFilter() - externalCustomerId() - replaceExistingEvents() - validated = true + fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + body.removeAllAdditionalProperties(keys) } - fun toBuilder() = Builder().from(this) + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - companion object { + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .timeframeEnd() - * .timeframeStart() - * ``` - */ - @JvmStatic fun builder() = Builder() + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) } - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var timeframeEnd: JsonField? = null - private var timeframeStart: JsonField? = null - private var closeTime: JsonField = JsonMissing.of() - private var customerId: JsonField = JsonMissing.of() - private var deprecationFilter: JsonField = JsonMissing.of() - private var externalCustomerId: JsonField = JsonMissing.of() - private var replaceExistingEvents: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - timeframeEnd = body.timeframeEnd - timeframeStart = body.timeframeStart - closeTime = body.closeTime - customerId = body.customerId - deprecationFilter = body.deprecationFilter - externalCustomerId = body.externalCustomerId - replaceExistingEvents = body.replaceExistingEvents - additionalProperties = body.additionalProperties.toMutableMap() - } - - /** - * The (exclusive) end of the usage timeframe affected by this backfill. By default, Orb - * allows backfills up to 10 days in duration at a time. Reach out to discuss extending - * this limit and your use case. - */ - fun timeframeEnd(timeframeEnd: OffsetDateTime) = - timeframeEnd(JsonField.of(timeframeEnd)) - - /** - * Sets [Builder.timeframeEnd] to an arbitrary JSON value. - * - * You should usually call [Builder.timeframeEnd] with a well-typed [OffsetDateTime] - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - fun timeframeEnd(timeframeEnd: JsonField) = apply { - this.timeframeEnd = timeframeEnd - } - - /** - * The (inclusive) start of the usage timeframe affected by this backfill. By default, - * Orb allows backfills up to 10 days in duration at a time. Reach out to discuss - * extending this limit and your use case. - */ - fun timeframeStart(timeframeStart: OffsetDateTime) = - timeframeStart(JsonField.of(timeframeStart)) - - /** - * Sets [Builder.timeframeStart] to an arbitrary JSON value. - * - * You should usually call [Builder.timeframeStart] with a well-typed [OffsetDateTime] - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - fun timeframeStart(timeframeStart: JsonField) = apply { - this.timeframeStart = timeframeStart - } - - /** - * The time at which no more events will be accepted for this backfill. The backfill - * will automatically begin reflecting throughout Orb at the close time. If not - * specified, it will default to 1 day after the creation of the backfill. - */ - fun closeTime(closeTime: OffsetDateTime?) = closeTime(JsonField.ofNullable(closeTime)) - - /** Alias for calling [Builder.closeTime] with `closeTime.orElse(null)`. */ - fun closeTime(closeTime: Optional) = closeTime(closeTime.getOrNull()) - - /** - * Sets [Builder.closeTime] to an arbitrary JSON value. - * - * You should usually call [Builder.closeTime] with a well-typed [OffsetDateTime] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun closeTime(closeTime: JsonField) = apply { - this.closeTime = closeTime - } - - /** - * The Orb-generated ID of the customer to which this backfill is scoped. Omitting this - * field will scope the backfill to all customers. - */ - fun customerId(customerId: String?) = customerId(JsonField.ofNullable(customerId)) - - /** Alias for calling [Builder.customerId] with `customerId.orElse(null)`. */ - fun customerId(customerId: Optional) = customerId(customerId.getOrNull()) - - /** - * Sets [Builder.customerId] to an arbitrary JSON value. - * - * You should usually call [Builder.customerId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun customerId(customerId: JsonField) = apply { this.customerId = customerId } - - /** - * A boolean [computed property](/extensibility/advanced-metrics#computed-properties) - * used to filter the set of events to deprecate - */ - fun deprecationFilter(deprecationFilter: String?) = - deprecationFilter(JsonField.ofNullable(deprecationFilter)) + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } - /** - * Alias for calling [Builder.deprecationFilter] with `deprecationFilter.orElse(null)`. - */ - fun deprecationFilter(deprecationFilter: Optional) = - deprecationFilter(deprecationFilter.getOrNull()) + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - /** - * Sets [Builder.deprecationFilter] to an arbitrary JSON value. - * - * You should usually call [Builder.deprecationFilter] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun deprecationFilter(deprecationFilter: JsonField) = apply { - this.deprecationFilter = deprecationFilter - } + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - /** - * The external customer ID of the customer to which this backfill is scoped. Omitting - * this field will scope the backfill to all customers. - */ - fun externalCustomerId(externalCustomerId: String?) = - externalCustomerId(JsonField.ofNullable(externalCustomerId)) + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } - /** - * Alias for calling [Builder.externalCustomerId] with - * `externalCustomerId.orElse(null)`. - */ - fun externalCustomerId(externalCustomerId: Optional) = - externalCustomerId(externalCustomerId.getOrNull()) + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } - /** - * Sets [Builder.externalCustomerId] to an arbitrary JSON value. - * - * You should usually call [Builder.externalCustomerId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun externalCustomerId(externalCustomerId: JsonField) = apply { - this.externalCustomerId = externalCustomerId - } + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** - * If true, replaces all existing events in the timeframe with the newly ingested - * events. If false, adds the newly ingested events to the existing events. - */ - fun replaceExistingEvents(replaceExistingEvents: Boolean) = - replaceExistingEvents(JsonField.of(replaceExistingEvents)) + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** - * Sets [Builder.replaceExistingEvents] to an arbitrary JSON value. - * - * You should usually call [Builder.replaceExistingEvents] with a well-typed [Boolean] - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - fun replaceExistingEvents(replaceExistingEvents: JsonField) = apply { - this.replaceExistingEvents = replaceExistingEvents - } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .timeframeEnd() - * .timeframeStart() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body( - checkRequired("timeframeEnd", timeframeEnd), - checkRequired("timeframeStart", timeframeStart), - closeTime, - customerId, - deprecationFilter, - externalCustomerId, - replaceExistingEvents, - additionalProperties.toImmutable(), - ) + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } - override fun equals(other: Any?): Boolean { - if (this === other) { - return true + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) } - return /* spotless:off */ other is Body && timeframeEnd == other.timeframeEnd && timeframeStart == other.timeframeStart && closeTime == other.closeTime && customerId == other.customerId && deprecationFilter == other.deprecationFilter && externalCustomerId == other.externalCustomerId && replaceExistingEvents == other.replaceExistingEvents && additionalProperties == other.additionalProperties /* spotless:on */ + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) } - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(timeframeEnd, timeframeStart, closeTime, customerId, deprecationFilter, externalCustomerId, replaceExistingEvents, additionalProperties) } - /* spotless:on */ + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } - override fun hashCode(): Int = hashCode + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - override fun toString() = - "Body{timeframeEnd=$timeframeEnd, timeframeStart=$timeframeStart, closeTime=$closeTime, customerId=$customerId, deprecationFilter=$deprecationFilter, externalCustomerId=$externalCustomerId, replaceExistingEvents=$replaceExistingEvents, additionalProperties=$additionalProperties}" - } + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - fun toBuilder() = Builder().from(this) + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } - companion object { + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } /** - * Returns a mutable builder for constructing an instance of [EventBackfillCreateParams]. + * Returns an immutable instance of [EventBackfillCreateParams]. + * + * Further updates to this [Builder] will not mutate the returned instance. * * The following fields are required: * ```java * .timeframeEnd() * .timeframeStart() * ``` + * + * @throws IllegalStateException if any required field is unset. */ - @JvmStatic fun builder() = Builder() + fun build(): EventBackfillCreateParams = + EventBackfillCreateParams( + body.build(), + additionalHeaders.build(), + additionalQueryParams.build(), + ) } - /** A builder for [EventBackfillCreateParams]. */ - @NoAutoDetect - class Builder internal constructor() { + @JvmSynthetic internal fun _body(): Body = body - private var body: Body.Builder = Body.builder() - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body + private constructor( + private val timeframeEnd: JsonField, + private val timeframeStart: JsonField, + private val closeTime: JsonField, + private val customerId: JsonField, + private val deprecationFilter: JsonField, + private val externalCustomerId: JsonField, + private val replaceExistingEvents: JsonField, + private val additionalProperties: MutableMap, + ) { - @JvmSynthetic - internal fun from(eventBackfillCreateParams: EventBackfillCreateParams) = apply { - body = eventBackfillCreateParams.body.toBuilder() - additionalHeaders = eventBackfillCreateParams.additionalHeaders.toBuilder() - additionalQueryParams = eventBackfillCreateParams.additionalQueryParams.toBuilder() - } + @JsonCreator + private constructor( + @JsonProperty("timeframe_end") + @ExcludeMissing + timeframeEnd: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_start") + @ExcludeMissing + timeframeStart: JsonField = JsonMissing.of(), + @JsonProperty("close_time") + @ExcludeMissing + closeTime: JsonField = JsonMissing.of(), + @JsonProperty("customer_id") + @ExcludeMissing + customerId: JsonField = JsonMissing.of(), + @JsonProperty("deprecation_filter") + @ExcludeMissing + deprecationFilter: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + @JsonProperty("replace_existing_events") + @ExcludeMissing + replaceExistingEvents: JsonField = JsonMissing.of(), + ) : this( + timeframeEnd, + timeframeStart, + closeTime, + customerId, + deprecationFilter, + externalCustomerId, + replaceExistingEvents, + mutableMapOf(), + ) /** * The (exclusive) end of the usage timeframe affected by this backfill. By default, Orb * allows backfills up to 10 days in duration at a time. Reach out to discuss extending this * limit and your use case. - */ - fun timeframeEnd(timeframeEnd: OffsetDateTime) = apply { body.timeframeEnd(timeframeEnd) } - - /** - * Sets [Builder.timeframeEnd] to an arbitrary JSON value. * - * You should usually call [Builder.timeframeEnd] with a well-typed [OffsetDateTime] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun timeframeEnd(timeframeEnd: JsonField) = apply { - body.timeframeEnd(timeframeEnd) - } + fun timeframeEnd(): OffsetDateTime = timeframeEnd.getRequired("timeframe_end") /** * The (inclusive) start of the usage timeframe affected by this backfill. By default, Orb * allows backfills up to 10 days in duration at a time. Reach out to discuss extending this * limit and your use case. - */ - fun timeframeStart(timeframeStart: OffsetDateTime) = apply { - body.timeframeStart(timeframeStart) - } - - /** - * Sets [Builder.timeframeStart] to an arbitrary JSON value. * - * You should usually call [Builder.timeframeStart] with a well-typed [OffsetDateTime] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun timeframeStart(timeframeStart: JsonField) = apply { - body.timeframeStart(timeframeStart) - } + fun timeframeStart(): OffsetDateTime = timeframeStart.getRequired("timeframe_start") /** * The time at which no more events will be accepted for this backfill. The backfill will * automatically begin reflecting throughout Orb at the close time. If not specified, it * will default to 1 day after the creation of the backfill. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun closeTime(closeTime: OffsetDateTime?) = apply { body.closeTime(closeTime) } + fun closeTime(): Optional = + Optional.ofNullable(closeTime.getNullable("close_time")) - /** Alias for calling [Builder.closeTime] with `closeTime.orElse(null)`. */ - fun closeTime(closeTime: Optional) = closeTime(closeTime.getOrNull()) + /** + * The Orb-generated ID of the customer to which this backfill is scoped. Omitting this + * field will scope the backfill to all customers. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun customerId(): Optional = + Optional.ofNullable(customerId.getNullable("customer_id")) /** - * Sets [Builder.closeTime] to an arbitrary JSON value. + * A boolean [computed property](/extensibility/advanced-metrics#computed-properties) used + * to filter the set of events to deprecate * - * You should usually call [Builder.closeTime] with a well-typed [OffsetDateTime] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun closeTime(closeTime: JsonField) = apply { body.closeTime(closeTime) } + fun deprecationFilter(): Optional = + Optional.ofNullable(deprecationFilter.getNullable("deprecation_filter")) /** - * The Orb-generated ID of the customer to which this backfill is scoped. Omitting this + * The external customer ID of the customer to which this backfill is scoped. Omitting this * field will scope the backfill to all customers. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun customerId(customerId: String?) = apply { body.customerId(customerId) } - - /** Alias for calling [Builder.customerId] with `customerId.orElse(null)`. */ - fun customerId(customerId: Optional) = customerId(customerId.getOrNull()) + fun externalCustomerId(): Optional = + Optional.ofNullable(externalCustomerId.getNullable("external_customer_id")) /** - * Sets [Builder.customerId] to an arbitrary JSON value. + * If true, replaces all existing events in the timeframe with the newly ingested events. If + * false, adds the newly ingested events to the existing events. * - * You should usually call [Builder.customerId] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun customerId(customerId: JsonField) = apply { body.customerId(customerId) } + fun replaceExistingEvents(): Optional = + Optional.ofNullable(replaceExistingEvents.getNullable("replace_existing_events")) /** - * A boolean [computed property](/extensibility/advanced-metrics#computed-properties) used - * to filter the set of events to deprecate + * Returns the raw JSON value of [timeframeEnd]. + * + * Unlike [timeframeEnd], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun deprecationFilter(deprecationFilter: String?) = apply { - body.deprecationFilter(deprecationFilter) - } - - /** Alias for calling [Builder.deprecationFilter] with `deprecationFilter.orElse(null)`. */ - fun deprecationFilter(deprecationFilter: Optional) = - deprecationFilter(deprecationFilter.getOrNull()) + @JsonProperty("timeframe_end") + @ExcludeMissing + fun _timeframeEnd(): JsonField = timeframeEnd /** - * Sets [Builder.deprecationFilter] to an arbitrary JSON value. + * Returns the raw JSON value of [timeframeStart]. * - * You should usually call [Builder.deprecationFilter] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [timeframeStart], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun deprecationFilter(deprecationFilter: JsonField) = apply { - body.deprecationFilter(deprecationFilter) - } + @JsonProperty("timeframe_start") + @ExcludeMissing + fun _timeframeStart(): JsonField = timeframeStart /** - * The external customer ID of the customer to which this backfill is scoped. Omitting this - * field will scope the backfill to all customers. + * Returns the raw JSON value of [closeTime]. + * + * Unlike [closeTime], this method doesn't throw if the JSON field has an unexpected type. */ - fun externalCustomerId(externalCustomerId: String?) = apply { - body.externalCustomerId(externalCustomerId) - } + @JsonProperty("close_time") + @ExcludeMissing + fun _closeTime(): JsonField = closeTime /** - * Alias for calling [Builder.externalCustomerId] with `externalCustomerId.orElse(null)`. + * Returns the raw JSON value of [customerId]. + * + * Unlike [customerId], this method doesn't throw if the JSON field has an unexpected type. */ - fun externalCustomerId(externalCustomerId: Optional) = - externalCustomerId(externalCustomerId.getOrNull()) + @JsonProperty("customer_id") + @ExcludeMissing + fun _customerId(): JsonField = customerId /** - * Sets [Builder.externalCustomerId] to an arbitrary JSON value. + * Returns the raw JSON value of [deprecationFilter]. * - * You should usually call [Builder.externalCustomerId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [deprecationFilter], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun externalCustomerId(externalCustomerId: JsonField) = apply { - body.externalCustomerId(externalCustomerId) - } + @JsonProperty("deprecation_filter") + @ExcludeMissing + fun _deprecationFilter(): JsonField = deprecationFilter /** - * If true, replaces all existing events in the timeframe with the newly ingested events. If - * false, adds the newly ingested events to the existing events. + * Returns the raw JSON value of [externalCustomerId]. + * + * Unlike [externalCustomerId], this method doesn't throw if the JSON field has an + * unexpected type. */ - fun replaceExistingEvents(replaceExistingEvents: Boolean) = apply { - body.replaceExistingEvents(replaceExistingEvents) - } + @JsonProperty("external_customer_id") + @ExcludeMissing + fun _externalCustomerId(): JsonField = externalCustomerId /** - * Sets [Builder.replaceExistingEvents] to an arbitrary JSON value. + * Returns the raw JSON value of [replaceExistingEvents]. * - * You should usually call [Builder.replaceExistingEvents] with a well-typed [Boolean] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [replaceExistingEvents], this method doesn't throw if the JSON field has an + * unexpected type. */ - fun replaceExistingEvents(replaceExistingEvents: JsonField) = apply { - body.replaceExistingEvents(replaceExistingEvents) + @JsonProperty("replace_existing_events") + @ExcludeMissing + fun _replaceExistingEvents(): JsonField = replaceExistingEvents + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .timeframeEnd() + * .timeframeStart() + * ``` + */ + @JvmStatic fun builder() = Builder() } - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { - body.additionalProperties(additionalBodyProperties) - } + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var timeframeEnd: JsonField? = null + private var timeframeStart: JsonField? = null + private var closeTime: JsonField = JsonMissing.of() + private var customerId: JsonField = JsonMissing.of() + private var deprecationFilter: JsonField = JsonMissing.of() + private var externalCustomerId: JsonField = JsonMissing.of() + private var replaceExistingEvents: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + timeframeEnd = body.timeframeEnd + timeframeStart = body.timeframeStart + closeTime = body.closeTime + customerId = body.customerId + deprecationFilter = body.deprecationFilter + externalCustomerId = body.externalCustomerId + replaceExistingEvents = body.replaceExistingEvents + additionalProperties = body.additionalProperties.toMutableMap() + } + + /** + * The (exclusive) end of the usage timeframe affected by this backfill. By default, Orb + * allows backfills up to 10 days in duration at a time. Reach out to discuss extending + * this limit and your use case. + */ + fun timeframeEnd(timeframeEnd: OffsetDateTime) = + timeframeEnd(JsonField.of(timeframeEnd)) + + /** + * Sets [Builder.timeframeEnd] to an arbitrary JSON value. + * + * You should usually call [Builder.timeframeEnd] with a well-typed [OffsetDateTime] + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + fun timeframeEnd(timeframeEnd: JsonField) = apply { + this.timeframeEnd = timeframeEnd + } + + /** + * The (inclusive) start of the usage timeframe affected by this backfill. By default, + * Orb allows backfills up to 10 days in duration at a time. Reach out to discuss + * extending this limit and your use case. + */ + fun timeframeStart(timeframeStart: OffsetDateTime) = + timeframeStart(JsonField.of(timeframeStart)) + + /** + * Sets [Builder.timeframeStart] to an arbitrary JSON value. + * + * You should usually call [Builder.timeframeStart] with a well-typed [OffsetDateTime] + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + fun timeframeStart(timeframeStart: JsonField) = apply { + this.timeframeStart = timeframeStart + } + + /** + * The time at which no more events will be accepted for this backfill. The backfill + * will automatically begin reflecting throughout Orb at the close time. If not + * specified, it will default to 1 day after the creation of the backfill. + */ + fun closeTime(closeTime: OffsetDateTime?) = closeTime(JsonField.ofNullable(closeTime)) - fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - body.putAdditionalProperty(key, value) - } + /** Alias for calling [Builder.closeTime] with `closeTime.orElse(null)`. */ + fun closeTime(closeTime: Optional) = closeTime(closeTime.getOrNull()) - fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = - apply { - body.putAllAdditionalProperties(additionalBodyProperties) + /** + * Sets [Builder.closeTime] to an arbitrary JSON value. + * + * You should usually call [Builder.closeTime] with a well-typed [OffsetDateTime] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun closeTime(closeTime: JsonField) = apply { + this.closeTime = closeTime } - fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } - - fun removeAllAdditionalBodyProperties(keys: Set) = apply { - body.removeAllAdditionalProperties(keys) - } + /** + * The Orb-generated ID of the customer to which this backfill is scoped. Omitting this + * field will scope the backfill to all customers. + */ + fun customerId(customerId: String?) = customerId(JsonField.ofNullable(customerId)) - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** Alias for calling [Builder.customerId] with `customerId.orElse(null)`. */ + fun customerId(customerId: Optional) = customerId(customerId.getOrNull()) - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** + * Sets [Builder.customerId] to an arbitrary JSON value. + * + * You should usually call [Builder.customerId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun customerId(customerId: JsonField) = apply { this.customerId = customerId } - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } + /** + * A boolean [computed property](/extensibility/advanced-metrics#computed-properties) + * used to filter the set of events to deprecate + */ + fun deprecationFilter(deprecationFilter: String?) = + deprecationFilter(JsonField.ofNullable(deprecationFilter)) - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } + /** + * Alias for calling [Builder.deprecationFilter] with `deprecationFilter.orElse(null)`. + */ + fun deprecationFilter(deprecationFilter: Optional) = + deprecationFilter(deprecationFilter.getOrNull()) - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** + * Sets [Builder.deprecationFilter] to an arbitrary JSON value. + * + * You should usually call [Builder.deprecationFilter] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun deprecationFilter(deprecationFilter: JsonField) = apply { + this.deprecationFilter = deprecationFilter + } - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** + * The external customer ID of the customer to which this backfill is scoped. Omitting + * this field will scope the backfill to all customers. + */ + fun externalCustomerId(externalCustomerId: String?) = + externalCustomerId(JsonField.ofNullable(externalCustomerId)) - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } + /** + * Alias for calling [Builder.externalCustomerId] with + * `externalCustomerId.orElse(null)`. + */ + fun externalCustomerId(externalCustomerId: Optional) = + externalCustomerId(externalCustomerId.getOrNull()) - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } + /** + * Sets [Builder.externalCustomerId] to an arbitrary JSON value. + * + * You should usually call [Builder.externalCustomerId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun externalCustomerId(externalCustomerId: JsonField) = apply { + this.externalCustomerId = externalCustomerId + } - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** + * If true, replaces all existing events in the timeframe with the newly ingested + * events. If false, adds the newly ingested events to the existing events. + */ + fun replaceExistingEvents(replaceExistingEvents: Boolean) = + replaceExistingEvents(JsonField.of(replaceExistingEvents)) - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** + * Sets [Builder.replaceExistingEvents] to an arbitrary JSON value. + * + * You should usually call [Builder.replaceExistingEvents] with a well-typed [Boolean] + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + fun replaceExistingEvents(replaceExistingEvents: JsonField) = apply { + this.replaceExistingEvents = replaceExistingEvents + } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .timeframeEnd() + * .timeframeStart() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body( + checkRequired("timeframeEnd", timeframeEnd), + checkRequired("timeframeStart", timeframeStart), + closeTime, + customerId, + deprecationFilter, + externalCustomerId, + replaceExistingEvents, + additionalProperties.toMutableMap(), + ) } - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } + private var validated: Boolean = false - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) + fun validate(): Body = apply { + if (validated) { + return@apply } - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) + timeframeEnd() + timeframeStart() + closeTime() + customerId() + deprecationFilter() + externalCustomerId() + replaceExistingEvents() + validated = true } - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + return /* spotless:off */ other is Body && timeframeEnd == other.timeframeEnd && timeframeStart == other.timeframeStart && closeTime == other.closeTime && customerId == other.customerId && deprecationFilter == other.deprecationFilter && externalCustomerId == other.externalCustomerId && replaceExistingEvents == other.replaceExistingEvents && additionalProperties == other.additionalProperties /* spotless:on */ } - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(timeframeEnd, timeframeStart, closeTime, customerId, deprecationFilter, externalCustomerId, replaceExistingEvents, additionalProperties) } + /* spotless:on */ - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) - } + override fun hashCode(): Int = hashCode - /** - * Returns an immutable instance of [EventBackfillCreateParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .timeframeEnd() - * .timeframeStart() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): EventBackfillCreateParams = - EventBackfillCreateParams( - body.build(), - additionalHeaders.build(), - additionalQueryParams.build(), - ) + override fun toString() = + "Body{timeframeEnd=$timeframeEnd, timeframeStart=$timeframeStart, closeTime=$closeTime, customerId=$customerId, deprecationFilter=$deprecationFilter, externalCustomerId=$externalCustomerId, replaceExistingEvents=$replaceExistingEvents, additionalProperties=$additionalProperties}" } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCreateResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCreateResponse.kt index 53c8ee06..ee1edad7 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCreateResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCreateResponse.kt @@ -11,12 +11,10 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -25,44 +23,68 @@ import kotlin.jvm.optionals.getOrNull * A backfill represents an update to historical usage data, adding or replacing events in a * timeframe. */ -@NoAutoDetect class EventBackfillCreateResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("close_time") - @ExcludeMissing - private val closeTime: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("customer_id") - @ExcludeMissing - private val customerId: JsonField = JsonMissing.of(), - @JsonProperty("events_ingested") - @ExcludeMissing - private val eventsIngested: JsonField = JsonMissing.of(), - @JsonProperty("replace_existing_events") - @ExcludeMissing - private val replaceExistingEvents: JsonField = JsonMissing.of(), - @JsonProperty("reverted_at") - @ExcludeMissing - private val revertedAt: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_end") - @ExcludeMissing - private val timeframeEnd: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_start") - @ExcludeMissing - private val timeframeStart: JsonField = JsonMissing.of(), - @JsonProperty("deprecation_filter") - @ExcludeMissing - private val deprecationFilter: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val closeTime: JsonField, + private val createdAt: JsonField, + private val customerId: JsonField, + private val eventsIngested: JsonField, + private val replaceExistingEvents: JsonField, + private val revertedAt: JsonField, + private val status: JsonField, + private val timeframeEnd: JsonField, + private val timeframeStart: JsonField, + private val deprecationFilter: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("close_time") + @ExcludeMissing + closeTime: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("customer_id") + @ExcludeMissing + customerId: JsonField = JsonMissing.of(), + @JsonProperty("events_ingested") + @ExcludeMissing + eventsIngested: JsonField = JsonMissing.of(), + @JsonProperty("replace_existing_events") + @ExcludeMissing + replaceExistingEvents: JsonField = JsonMissing.of(), + @JsonProperty("reverted_at") + @ExcludeMissing + revertedAt: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_end") + @ExcludeMissing + timeframeEnd: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_start") + @ExcludeMissing + timeframeStart: JsonField = JsonMissing.of(), + @JsonProperty("deprecation_filter") + @ExcludeMissing + deprecationFilter: JsonField = JsonMissing.of(), + ) : this( + id, + closeTime, + createdAt, + customerId, + eventsIngested, + replaceExistingEvents, + revertedAt, + status, + timeframeEnd, + timeframeStart, + deprecationFilter, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -247,30 +269,15 @@ private constructor( @ExcludeMissing fun _deprecationFilter(): JsonField = deprecationFilter + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): EventBackfillCreateResponse = apply { - if (validated) { - return@apply - } - - id() - closeTime() - createdAt() - customerId() - eventsIngested() - replaceExistingEvents() - revertedAt() - status() - timeframeEnd() - timeframeStart() - deprecationFilter() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -548,10 +555,31 @@ private constructor( checkRequired("timeframeEnd", timeframeEnd), checkRequired("timeframeStart", timeframeStart), deprecationFilter, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): EventBackfillCreateResponse = apply { + if (validated) { + return@apply + } + + id() + closeTime() + createdAt() + customerId() + eventsIngested() + replaceExistingEvents() + revertedAt() + status() + timeframeEnd() + timeframeStart() + deprecationFilter() + validated = true + } + /** The status of the backfill. */ class Status @JsonCreator private constructor(private val value: JsonField) : Enum { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillFetchParams.kt index 7e6dff6e..30794a55 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillFetchParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -23,16 +22,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> backfillId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - fun toBuilder() = Builder().from(this) companion object { @@ -49,7 +38,6 @@ private constructor( } /** A builder for [EventBackfillFetchParams]. */ - @NoAutoDetect class Builder internal constructor() { private var backfillId: String? = null @@ -183,6 +171,16 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> backfillId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillFetchResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillFetchResponse.kt index 9f76593d..7a6200ec 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillFetchResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillFetchResponse.kt @@ -11,12 +11,10 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -25,44 +23,68 @@ import kotlin.jvm.optionals.getOrNull * A backfill represents an update to historical usage data, adding or replacing events in a * timeframe. */ -@NoAutoDetect class EventBackfillFetchResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("close_time") - @ExcludeMissing - private val closeTime: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("customer_id") - @ExcludeMissing - private val customerId: JsonField = JsonMissing.of(), - @JsonProperty("events_ingested") - @ExcludeMissing - private val eventsIngested: JsonField = JsonMissing.of(), - @JsonProperty("replace_existing_events") - @ExcludeMissing - private val replaceExistingEvents: JsonField = JsonMissing.of(), - @JsonProperty("reverted_at") - @ExcludeMissing - private val revertedAt: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_end") - @ExcludeMissing - private val timeframeEnd: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_start") - @ExcludeMissing - private val timeframeStart: JsonField = JsonMissing.of(), - @JsonProperty("deprecation_filter") - @ExcludeMissing - private val deprecationFilter: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val closeTime: JsonField, + private val createdAt: JsonField, + private val customerId: JsonField, + private val eventsIngested: JsonField, + private val replaceExistingEvents: JsonField, + private val revertedAt: JsonField, + private val status: JsonField, + private val timeframeEnd: JsonField, + private val timeframeStart: JsonField, + private val deprecationFilter: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("close_time") + @ExcludeMissing + closeTime: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("customer_id") + @ExcludeMissing + customerId: JsonField = JsonMissing.of(), + @JsonProperty("events_ingested") + @ExcludeMissing + eventsIngested: JsonField = JsonMissing.of(), + @JsonProperty("replace_existing_events") + @ExcludeMissing + replaceExistingEvents: JsonField = JsonMissing.of(), + @JsonProperty("reverted_at") + @ExcludeMissing + revertedAt: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_end") + @ExcludeMissing + timeframeEnd: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_start") + @ExcludeMissing + timeframeStart: JsonField = JsonMissing.of(), + @JsonProperty("deprecation_filter") + @ExcludeMissing + deprecationFilter: JsonField = JsonMissing.of(), + ) : this( + id, + closeTime, + createdAt, + customerId, + eventsIngested, + replaceExistingEvents, + revertedAt, + status, + timeframeEnd, + timeframeStart, + deprecationFilter, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -247,30 +269,15 @@ private constructor( @ExcludeMissing fun _deprecationFilter(): JsonField = deprecationFilter + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): EventBackfillFetchResponse = apply { - if (validated) { - return@apply - } - - id() - closeTime() - createdAt() - customerId() - eventsIngested() - replaceExistingEvents() - revertedAt() - status() - timeframeEnd() - timeframeStart() - deprecationFilter() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -548,10 +555,31 @@ private constructor( checkRequired("timeframeEnd", timeframeEnd), checkRequired("timeframeStart", timeframeStart), deprecationFilter, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): EventBackfillFetchResponse = apply { + if (validated) { + return@apply + } + + id() + closeTime() + createdAt() + customerId() + eventsIngested() + replaceExistingEvents() + revertedAt() + status() + timeframeEnd() + timeframeStart() + deprecationFilter() + validated = true + } + /** The status of the backfill. */ class Status @JsonCreator private constructor(private val value: JsonField) : Enum { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillListPage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillListPage.kt index 900928da..7539f86c 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillListPage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillListPage.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.blocking.events.BackfillService +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.stream.Stream @@ -91,18 +89,20 @@ private constructor( ) = EventBackfillListPage(backfillsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") - private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") + data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -116,9 +116,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -189,7 +195,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillListPageAsync.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillListPageAsync.kt index 1bee15b6..33983f33 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillListPageAsync.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillListPageAsync.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.async.events.BackfillServiceAsync +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.concurrent.CompletableFuture @@ -93,18 +91,20 @@ private constructor( ) = EventBackfillListPageAsync(backfillsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") - private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") + data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -118,9 +118,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -192,7 +198,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillListParams.kt index 3194d354..a1cd76dd 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillListParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams @@ -39,17 +38,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - cursor?.let { put("cursor", it) } - limit?.let { put("limit", it.toString()) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -61,7 +49,6 @@ private constructor( } /** A builder for [EventBackfillListParams]. */ - @NoAutoDetect class Builder internal constructor() { private var cursor: String? = null @@ -211,6 +198,17 @@ private constructor( ) } + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + cursor?.let { put("cursor", it) } + limit?.let { put("limit", it.toString()) } + putAll(additionalQueryParams) + } + .build() + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillListResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillListResponse.kt index f82d568e..2967db47 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillListResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillListResponse.kt @@ -11,12 +11,10 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -25,44 +23,68 @@ import kotlin.jvm.optionals.getOrNull * A backfill represents an update to historical usage data, adding or replacing events in a * timeframe. */ -@NoAutoDetect class EventBackfillListResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("close_time") - @ExcludeMissing - private val closeTime: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("customer_id") - @ExcludeMissing - private val customerId: JsonField = JsonMissing.of(), - @JsonProperty("events_ingested") - @ExcludeMissing - private val eventsIngested: JsonField = JsonMissing.of(), - @JsonProperty("replace_existing_events") - @ExcludeMissing - private val replaceExistingEvents: JsonField = JsonMissing.of(), - @JsonProperty("reverted_at") - @ExcludeMissing - private val revertedAt: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_end") - @ExcludeMissing - private val timeframeEnd: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_start") - @ExcludeMissing - private val timeframeStart: JsonField = JsonMissing.of(), - @JsonProperty("deprecation_filter") - @ExcludeMissing - private val deprecationFilter: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val closeTime: JsonField, + private val createdAt: JsonField, + private val customerId: JsonField, + private val eventsIngested: JsonField, + private val replaceExistingEvents: JsonField, + private val revertedAt: JsonField, + private val status: JsonField, + private val timeframeEnd: JsonField, + private val timeframeStart: JsonField, + private val deprecationFilter: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("close_time") + @ExcludeMissing + closeTime: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("customer_id") + @ExcludeMissing + customerId: JsonField = JsonMissing.of(), + @JsonProperty("events_ingested") + @ExcludeMissing + eventsIngested: JsonField = JsonMissing.of(), + @JsonProperty("replace_existing_events") + @ExcludeMissing + replaceExistingEvents: JsonField = JsonMissing.of(), + @JsonProperty("reverted_at") + @ExcludeMissing + revertedAt: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_end") + @ExcludeMissing + timeframeEnd: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_start") + @ExcludeMissing + timeframeStart: JsonField = JsonMissing.of(), + @JsonProperty("deprecation_filter") + @ExcludeMissing + deprecationFilter: JsonField = JsonMissing.of(), + ) : this( + id, + closeTime, + createdAt, + customerId, + eventsIngested, + replaceExistingEvents, + revertedAt, + status, + timeframeEnd, + timeframeStart, + deprecationFilter, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -247,30 +269,15 @@ private constructor( @ExcludeMissing fun _deprecationFilter(): JsonField = deprecationFilter + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): EventBackfillListResponse = apply { - if (validated) { - return@apply - } - - id() - closeTime() - createdAt() - customerId() - eventsIngested() - replaceExistingEvents() - revertedAt() - status() - timeframeEnd() - timeframeStart() - deprecationFilter() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -548,10 +555,31 @@ private constructor( checkRequired("timeframeEnd", timeframeEnd), checkRequired("timeframeStart", timeframeStart), deprecationFilter, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): EventBackfillListResponse = apply { + if (validated) { + return@apply + } + + id() + closeTime() + createdAt() + customerId() + eventsIngested() + replaceExistingEvents() + revertedAt() + status() + timeframeEnd() + timeframeStart() + deprecationFilter() + validated = true + } + /** The status of the backfill. */ class Status @JsonCreator private constructor(private val value: JsonField) : Enum { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillRevertParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillRevertParams.kt index f9e5c765..72c5e678 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillRevertParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillRevertParams.kt @@ -2,13 +2,15 @@ package com.withorb.api.models +import com.fasterxml.jackson.annotation.JsonAnyGetter +import com.fasterxml.jackson.annotation.JsonAnySetter +import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.toImmutable +import java.util.Collections import java.util.Objects import java.util.Optional @@ -25,7 +27,7 @@ private constructor( private val backfillId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: Map, + private val additionalBodyProperties: MutableMap, ) : Params { fun backfillId(): String = backfillId @@ -34,21 +36,15 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _additionalBodyProperties(): Map = additionalBodyProperties - - @JvmSynthetic - internal fun _body(): Optional> = - Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) - - fun _pathParam(index: Int): String = - when (index) { - 0 -> backfillId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders + @JsonAnySetter + private fun putAdditionalBodyProperty(key: String, value: JsonValue) { + additionalBodyProperties.put(key, value) + } - override fun _queryParams(): QueryParams = additionalQueryParams + @JsonAnyGetter + @ExcludeMissing + fun _additionalBodyProperties(): Map = + Collections.unmodifiableMap(additionalBodyProperties) fun toBuilder() = Builder().from(this) @@ -66,7 +62,6 @@ private constructor( } /** A builder for [EventBackfillRevertParams]. */ - @NoAutoDetect class Builder internal constructor() { private var backfillId: String? = null @@ -222,10 +217,24 @@ private constructor( checkRequired("backfillId", backfillId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toImmutable(), + additionalBodyProperties.toMutableMap(), ) } + @JvmSynthetic + internal fun _body(): Optional> = + Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) + + fun _pathParam(index: Int): String = + when (index) { + 0 -> backfillId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillRevertResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillRevertResponse.kt index da7d3a66..86e5bef8 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillRevertResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillRevertResponse.kt @@ -11,12 +11,10 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -25,44 +23,68 @@ import kotlin.jvm.optionals.getOrNull * A backfill represents an update to historical usage data, adding or replacing events in a * timeframe. */ -@NoAutoDetect class EventBackfillRevertResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("close_time") - @ExcludeMissing - private val closeTime: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("customer_id") - @ExcludeMissing - private val customerId: JsonField = JsonMissing.of(), - @JsonProperty("events_ingested") - @ExcludeMissing - private val eventsIngested: JsonField = JsonMissing.of(), - @JsonProperty("replace_existing_events") - @ExcludeMissing - private val replaceExistingEvents: JsonField = JsonMissing.of(), - @JsonProperty("reverted_at") - @ExcludeMissing - private val revertedAt: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_end") - @ExcludeMissing - private val timeframeEnd: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_start") - @ExcludeMissing - private val timeframeStart: JsonField = JsonMissing.of(), - @JsonProperty("deprecation_filter") - @ExcludeMissing - private val deprecationFilter: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val closeTime: JsonField, + private val createdAt: JsonField, + private val customerId: JsonField, + private val eventsIngested: JsonField, + private val replaceExistingEvents: JsonField, + private val revertedAt: JsonField, + private val status: JsonField, + private val timeframeEnd: JsonField, + private val timeframeStart: JsonField, + private val deprecationFilter: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("close_time") + @ExcludeMissing + closeTime: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("customer_id") + @ExcludeMissing + customerId: JsonField = JsonMissing.of(), + @JsonProperty("events_ingested") + @ExcludeMissing + eventsIngested: JsonField = JsonMissing.of(), + @JsonProperty("replace_existing_events") + @ExcludeMissing + replaceExistingEvents: JsonField = JsonMissing.of(), + @JsonProperty("reverted_at") + @ExcludeMissing + revertedAt: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_end") + @ExcludeMissing + timeframeEnd: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_start") + @ExcludeMissing + timeframeStart: JsonField = JsonMissing.of(), + @JsonProperty("deprecation_filter") + @ExcludeMissing + deprecationFilter: JsonField = JsonMissing.of(), + ) : this( + id, + closeTime, + createdAt, + customerId, + eventsIngested, + replaceExistingEvents, + revertedAt, + status, + timeframeEnd, + timeframeStart, + deprecationFilter, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -247,30 +269,15 @@ private constructor( @ExcludeMissing fun _deprecationFilter(): JsonField = deprecationFilter + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): EventBackfillRevertResponse = apply { - if (validated) { - return@apply - } - - id() - closeTime() - createdAt() - customerId() - eventsIngested() - replaceExistingEvents() - revertedAt() - status() - timeframeEnd() - timeframeStart() - deprecationFilter() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -548,10 +555,31 @@ private constructor( checkRequired("timeframeEnd", timeframeEnd), checkRequired("timeframeStart", timeframeStart), deprecationFilter, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): EventBackfillRevertResponse = apply { + if (validated) { + return@apply + } + + id() + closeTime() + createdAt() + customerId() + eventsIngested() + replaceExistingEvents() + revertedAt() + status() + timeframeEnd() + timeframeStart() + deprecationFilter() + validated = true + } + /** The status of the backfill. */ class Status @JsonCreator private constructor(private val value: JsonField) : Enum { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventDeprecateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventDeprecateParams.kt index 4ce5a9fb..59efc134 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventDeprecateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventDeprecateParams.kt @@ -2,13 +2,15 @@ package com.withorb.api.models +import com.fasterxml.jackson.annotation.JsonAnyGetter +import com.fasterxml.jackson.annotation.JsonAnySetter +import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.toImmutable +import java.util.Collections import java.util.Objects import java.util.Optional @@ -51,7 +53,7 @@ private constructor( private val eventId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: Map, + private val additionalBodyProperties: MutableMap, ) : Params { fun eventId(): String = eventId @@ -60,21 +62,15 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _additionalBodyProperties(): Map = additionalBodyProperties - - @JvmSynthetic - internal fun _body(): Optional> = - Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) - - fun _pathParam(index: Int): String = - when (index) { - 0 -> eventId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders + @JsonAnySetter + private fun putAdditionalBodyProperty(key: String, value: JsonValue) { + additionalBodyProperties.put(key, value) + } - override fun _queryParams(): QueryParams = additionalQueryParams + @JsonAnyGetter + @ExcludeMissing + fun _additionalBodyProperties(): Map = + Collections.unmodifiableMap(additionalBodyProperties) fun toBuilder() = Builder().from(this) @@ -92,7 +88,6 @@ private constructor( } /** A builder for [EventDeprecateParams]. */ - @NoAutoDetect class Builder internal constructor() { private var eventId: String? = null @@ -247,10 +242,24 @@ private constructor( checkRequired("eventId", eventId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toImmutable(), + additionalBodyProperties.toMutableMap(), ) } + @JvmSynthetic + internal fun _body(): Optional> = + Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) + + fun _pathParam(index: Int): String = + when (index) { + 0 -> eventId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventDeprecateResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventDeprecateResponse.kt index b2620381..0bd29adf 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventDeprecateResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventDeprecateResponse.kt @@ -10,23 +10,22 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects -@NoAutoDetect class EventDeprecateResponse -@JsonCreator private constructor( - @JsonProperty("deprecated") - @ExcludeMissing - private val deprecated: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val deprecated: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("deprecated") @ExcludeMissing deprecated: JsonField = JsonMissing.of() + ) : this(deprecated, mutableMapOf()) + /** * event_id of the deprecated event, if successfully updated * @@ -42,20 +41,15 @@ private constructor( */ @JsonProperty("deprecated") @ExcludeMissing fun _deprecated(): JsonField = deprecated + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): EventDeprecateResponse = apply { - if (validated) { - return@apply - } - - deprecated() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -130,10 +124,21 @@ private constructor( fun build(): EventDeprecateResponse = EventDeprecateResponse( checkRequired("deprecated", deprecated), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): EventDeprecateResponse = apply { + if (validated) { + return@apply + } + + deprecated() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventIngestParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventIngestParams.kt index 0f8acba8..ea3cd0c0 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventIngestParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventIngestParams.kt @@ -10,16 +10,15 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -249,165 +248,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - backfillId?.let { put("backfill_id", it) } - debug?.let { put("debug", it.toString()) } - putAll(additionalQueryParams) - } - .build() - - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("events") - @ExcludeMissing - private val events: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun events(): List = events.getRequired("events") - - /** - * Returns the raw JSON value of [events]. - * - * Unlike [events], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("events") @ExcludeMissing fun _events(): JsonField> = events - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - events().forEach { it.validate() } - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .events() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var events: JsonField>? = null - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - events = body.events.map { it.toMutableList() } - additionalProperties = body.additionalProperties.toMutableMap() - } - - fun events(events: List) = events(JsonField.of(events)) - - /** - * Sets [Builder.events] to an arbitrary JSON value. - * - * You should usually call [Builder.events] with a well-typed `List` value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun events(events: JsonField>) = apply { - this.events = events.map { it.toMutableList() } - } - - /** - * Adds a single [Event] to [events]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addEvent(event: Event) = apply { - events = - (events ?: JsonField.of(mutableListOf())).also { - checkKnown("events", it).add(event) - } - } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .events() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body( - checkRequired("events", events).map { it.toImmutable() }, - additionalProperties.toImmutable(), - ) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && events == other.events && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(events, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = "Body{events=$events, additionalProperties=$additionalProperties}" - } - fun toBuilder() = Builder().from(this) companion object { @@ -424,7 +264,6 @@ private constructor( } /** A builder for [EventIngestParams]. */ - @NoAutoDetect class Builder internal constructor() { private var backfillId: String? = null @@ -621,32 +460,212 @@ private constructor( ) } - @NoAutoDetect - class Event - @JsonCreator + @JvmSynthetic internal fun _body(): Body = body + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + backfillId?.let { put("backfill_id", it) } + debug?.let { put("debug", it.toString()) } + putAll(additionalQueryParams) + } + .build() + + class Body private constructor( - @JsonProperty("event_name") - @ExcludeMissing - private val eventName: JsonField = JsonMissing.of(), - @JsonProperty("idempotency_key") - @ExcludeMissing - private val idempotencyKey: JsonField = JsonMissing.of(), - @JsonProperty("properties") - @ExcludeMissing - private val properties: JsonValue = JsonMissing.of(), - @JsonProperty("timestamp") - @ExcludeMissing - private val timestamp: JsonField = JsonMissing.of(), - @JsonProperty("customer_id") - @ExcludeMissing - private val customerId: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), + private val events: JsonField>, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("events") + @ExcludeMissing + events: JsonField> = JsonMissing.of() + ) : this(events, mutableMapOf()) + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun events(): List = events.getRequired("events") + + /** + * Returns the raw JSON value of [events]. + * + * Unlike [events], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("events") @ExcludeMissing fun _events(): JsonField> = events + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .events() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var events: JsonField>? = null + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + events = body.events.map { it.toMutableList() } + additionalProperties = body.additionalProperties.toMutableMap() + } + + fun events(events: List) = events(JsonField.of(events)) + + /** + * Sets [Builder.events] to an arbitrary JSON value. + * + * You should usually call [Builder.events] with a well-typed `List` value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun events(events: JsonField>) = apply { + this.events = events.map { it.toMutableList() } + } + + /** + * Adds a single [Event] to [events]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addEvent(event: Event) = apply { + events = + (events ?: JsonField.of(mutableListOf())).also { + checkKnown("events", it).add(event) + } + } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .events() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body( + checkRequired("events", events).map { it.toImmutable() }, + additionalProperties.toMutableMap(), + ) + } + + private var validated: Boolean = false + + fun validate(): Body = apply { + if (validated) { + return@apply + } + + events().forEach { it.validate() } + validated = true + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Body && events == other.events && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(events, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = "Body{events=$events, additionalProperties=$additionalProperties}" + } + + class Event + private constructor( + private val eventName: JsonField, + private val idempotencyKey: JsonField, + private val properties: JsonValue, + private val timestamp: JsonField, + private val customerId: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("event_name") + @ExcludeMissing + eventName: JsonField = JsonMissing.of(), + @JsonProperty("idempotency_key") + @ExcludeMissing + idempotencyKey: JsonField = JsonMissing.of(), + @JsonProperty("properties") @ExcludeMissing properties: JsonValue = JsonMissing.of(), + @JsonProperty("timestamp") + @ExcludeMissing + timestamp: JsonField = JsonMissing.of(), + @JsonProperty("customer_id") + @ExcludeMissing + customerId: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this( + eventName, + idempotencyKey, + properties, + timestamp, + customerId, + externalCustomerId, + mutableMapOf(), + ) + /** * A name to meaningfully identify the action or event type. * @@ -744,24 +763,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Event = apply { - if (validated) { - return@apply - } - - eventName() - idempotencyKey() - timestamp() - customerId() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -939,10 +949,25 @@ private constructor( checkRequired("timestamp", timestamp), customerId, externalCustomerId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Event = apply { + if (validated) { + return@apply + } + + eventName() + idempotencyKey() + timestamp() + customerId() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventIngestResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventIngestResponse.kt index 9d56aec7..3a46d327 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventIngestResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventIngestResponse.kt @@ -10,27 +10,30 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class EventIngestResponse -@JsonCreator private constructor( - @JsonProperty("validation_failed") - @ExcludeMissing - private val validationFailed: JsonField> = JsonMissing.of(), - @JsonProperty("debug") @ExcludeMissing private val debug: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val validationFailed: JsonField>, + private val debug: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("validation_failed") + @ExcludeMissing + validationFailed: JsonField> = JsonMissing.of(), + @JsonProperty("debug") @ExcludeMissing debug: JsonField = JsonMissing.of(), + ) : this(validationFailed, debug, mutableMapOf()) + /** * Contains all failing validation events. In the case of a 200, this array will always be * empty. This field will always be present. @@ -67,21 +70,15 @@ private constructor( */ @JsonProperty("debug") @ExcludeMissing fun _debug(): JsonField = debug + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): EventIngestResponse = apply { - if (validated) { - return@apply - } - - validationFailed().forEach { it.validate() } - debug().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -194,24 +191,39 @@ private constructor( EventIngestResponse( checkRequired("validationFailed", validationFailed).map { it.toImmutable() }, debug, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): EventIngestResponse = apply { + if (validated) { + return@apply + } + + validationFailed().forEach { it.validate() } + debug().ifPresent { it.validate() } + validated = true + } + class ValidationFailed - @JsonCreator private constructor( - @JsonProperty("idempotency_key") - @ExcludeMissing - private val idempotencyKey: JsonField = JsonMissing.of(), - @JsonProperty("validation_errors") - @ExcludeMissing - private val validationErrors: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val idempotencyKey: JsonField, + private val validationErrors: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("idempotency_key") + @ExcludeMissing + idempotencyKey: JsonField = JsonMissing.of(), + @JsonProperty("validation_errors") + @ExcludeMissing + validationErrors: JsonField> = JsonMissing.of(), + ) : this(idempotencyKey, validationErrors, mutableMapOf()) + /** * The passed idempotency_key corresponding to the validation_errors * @@ -248,21 +260,15 @@ private constructor( @ExcludeMissing fun _validationErrors(): JsonField> = validationErrors + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ValidationFailed = apply { - if (validated) { - return@apply - } - - idempotencyKey() - validationErrors() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -374,10 +380,22 @@ private constructor( ValidationFailed( checkRequired("idempotencyKey", idempotencyKey), checkRequired("validationErrors", validationErrors).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): ValidationFailed = apply { + if (validated) { + return@apply + } + + idempotencyKey() + validationErrors() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -400,20 +418,23 @@ private constructor( * Optional debug information (only present when debug=true is passed to the endpoint). Contains * ingested and duplicate event idempotency keys. */ - @NoAutoDetect class Debug - @JsonCreator private constructor( - @JsonProperty("duplicate") - @ExcludeMissing - private val duplicate: JsonField> = JsonMissing.of(), - @JsonProperty("ingested") - @ExcludeMissing - private val ingested: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duplicate: JsonField>, + private val ingested: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duplicate") + @ExcludeMissing + duplicate: JsonField> = JsonMissing.of(), + @JsonProperty("ingested") + @ExcludeMissing + ingested: JsonField> = JsonMissing.of(), + ) : this(duplicate, ingested, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -444,21 +465,15 @@ private constructor( @ExcludeMissing fun _ingested(): JsonField> = ingested + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Debug = apply { - if (validated) { - return@apply - } - - duplicate() - ingested() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -576,10 +591,22 @@ private constructor( Debug( checkRequired("duplicate", duplicate).map { it.toImmutable() }, checkRequired("ingested", ingested).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Debug = apply { + if (validated) { + return@apply + } + + duplicate() + ingested() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventSearchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventSearchParams.kt index 6334f4d7..9943b0a2 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventSearchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventSearchParams.kt @@ -10,16 +10,15 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -100,29 +99,266 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [EventSearchParams]. + * + * The following fields are required: + * ```java + * .eventIds() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [EventSearchParams]. */ + class Builder internal constructor() { + + private var body: Body.Builder = Body.builder() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from(eventSearchParams: EventSearchParams) = apply { + body = eventSearchParams.body.toBuilder() + additionalHeaders = eventSearchParams.additionalHeaders.toBuilder() + additionalQueryParams = eventSearchParams.additionalQueryParams.toBuilder() + } + + /** + * This is an explicit array of IDs to filter by. Note that an event's ID is the + * idempotency_key that was originally used for ingestion, and this only supports events + * that have not been amended. Values in this array will be treated case sensitively. + */ + fun eventIds(eventIds: List) = apply { body.eventIds(eventIds) } + + /** + * Sets [Builder.eventIds] to an arbitrary JSON value. + * + * You should usually call [Builder.eventIds] with a well-typed `List` value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun eventIds(eventIds: JsonField>) = apply { body.eventIds(eventIds) } + + /** + * Adds a single [String] to [eventIds]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addEventId(eventId: String) = apply { body.addEventId(eventId) } + + /** + * The end of the timeframe, exclusive, in which to search events. If not specified, the + * current time is used. + */ + fun timeframeEnd(timeframeEnd: OffsetDateTime?) = apply { body.timeframeEnd(timeframeEnd) } + + /** Alias for calling [Builder.timeframeEnd] with `timeframeEnd.orElse(null)`. */ + fun timeframeEnd(timeframeEnd: Optional) = + timeframeEnd(timeframeEnd.getOrNull()) + + /** + * Sets [Builder.timeframeEnd] to an arbitrary JSON value. + * + * You should usually call [Builder.timeframeEnd] with a well-typed [OffsetDateTime] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun timeframeEnd(timeframeEnd: JsonField) = apply { + body.timeframeEnd(timeframeEnd) + } + + /** + * The start of the timeframe, inclusive, in which to search events. If not specified, the + * one week ago is used. + */ + fun timeframeStart(timeframeStart: OffsetDateTime?) = apply { + body.timeframeStart(timeframeStart) + } + + /** Alias for calling [Builder.timeframeStart] with `timeframeStart.orElse(null)`. */ + fun timeframeStart(timeframeStart: Optional) = + timeframeStart(timeframeStart.getOrNull()) + + /** + * Sets [Builder.timeframeStart] to an arbitrary JSON value. + * + * You should usually call [Builder.timeframeStart] with a well-typed [OffsetDateTime] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun timeframeStart(timeframeStart: JsonField) = apply { + body.timeframeStart(timeframeStart) + } + + fun additionalBodyProperties(additionalBodyProperties: Map) = apply { + body.additionalProperties(additionalBodyProperties) + } + + fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { + body.putAdditionalProperty(key, value) + } + + fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = + apply { + body.putAllAdditionalProperties(additionalBodyProperties) + } + + fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + body.removeAllAdditionalProperties(keys) + } + + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) + } + + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } + + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } + + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) + } + + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } + + /** + * Returns an immutable instance of [EventSearchParams]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .eventIds() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): EventSearchParams = + EventSearchParams( + body.build(), + additionalHeaders.build(), + additionalQueryParams.build(), + ) + } + @JvmSynthetic internal fun _body(): Body = body override fun _headers(): Headers = additionalHeaders override fun _queryParams(): QueryParams = additionalQueryParams - @NoAutoDetect class Body - @JsonCreator private constructor( - @JsonProperty("event_ids") - @ExcludeMissing - private val eventIds: JsonField> = JsonMissing.of(), - @JsonProperty("timeframe_end") - @ExcludeMissing - private val timeframeEnd: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_start") - @ExcludeMissing - private val timeframeStart: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val eventIds: JsonField>, + private val timeframeEnd: JsonField, + private val timeframeStart: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("event_ids") + @ExcludeMissing + eventIds: JsonField> = JsonMissing.of(), + @JsonProperty("timeframe_end") + @ExcludeMissing + timeframeEnd: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_start") + @ExcludeMissing + timeframeStart: JsonField = JsonMissing.of(), + ) : this(eventIds, timeframeEnd, timeframeStart, mutableMapOf()) + /** * This is an explicit array of IDs to filter by. Note that an event's ID is the * idempotency_key that was originally used for ingestion, and this only supports events @@ -182,22 +418,15 @@ private constructor( @ExcludeMissing fun _timeframeStart(): JsonField = timeframeStart + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - eventIds() - timeframeEnd() - timeframeStart() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -340,10 +569,23 @@ private constructor( checkRequired("eventIds", eventIds).map { it.toImmutable() }, timeframeEnd, timeframeStart, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Body = apply { + if (validated) { + return@apply + } + + eventIds() + timeframeEnd() + timeframeStart() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -362,240 +604,6 @@ private constructor( "Body{eventIds=$eventIds, timeframeEnd=$timeframeEnd, timeframeStart=$timeframeStart, additionalProperties=$additionalProperties}" } - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of [EventSearchParams]. - * - * The following fields are required: - * ```java - * .eventIds() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [EventSearchParams]. */ - @NoAutoDetect - class Builder internal constructor() { - - private var body: Body.Builder = Body.builder() - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() - - @JvmSynthetic - internal fun from(eventSearchParams: EventSearchParams) = apply { - body = eventSearchParams.body.toBuilder() - additionalHeaders = eventSearchParams.additionalHeaders.toBuilder() - additionalQueryParams = eventSearchParams.additionalQueryParams.toBuilder() - } - - /** - * This is an explicit array of IDs to filter by. Note that an event's ID is the - * idempotency_key that was originally used for ingestion, and this only supports events - * that have not been amended. Values in this array will be treated case sensitively. - */ - fun eventIds(eventIds: List) = apply { body.eventIds(eventIds) } - - /** - * Sets [Builder.eventIds] to an arbitrary JSON value. - * - * You should usually call [Builder.eventIds] with a well-typed `List` value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun eventIds(eventIds: JsonField>) = apply { body.eventIds(eventIds) } - - /** - * Adds a single [String] to [eventIds]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addEventId(eventId: String) = apply { body.addEventId(eventId) } - - /** - * The end of the timeframe, exclusive, in which to search events. If not specified, the - * current time is used. - */ - fun timeframeEnd(timeframeEnd: OffsetDateTime?) = apply { body.timeframeEnd(timeframeEnd) } - - /** Alias for calling [Builder.timeframeEnd] with `timeframeEnd.orElse(null)`. */ - fun timeframeEnd(timeframeEnd: Optional) = - timeframeEnd(timeframeEnd.getOrNull()) - - /** - * Sets [Builder.timeframeEnd] to an arbitrary JSON value. - * - * You should usually call [Builder.timeframeEnd] with a well-typed [OffsetDateTime] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun timeframeEnd(timeframeEnd: JsonField) = apply { - body.timeframeEnd(timeframeEnd) - } - - /** - * The start of the timeframe, inclusive, in which to search events. If not specified, the - * one week ago is used. - */ - fun timeframeStart(timeframeStart: OffsetDateTime?) = apply { - body.timeframeStart(timeframeStart) - } - - /** Alias for calling [Builder.timeframeStart] with `timeframeStart.orElse(null)`. */ - fun timeframeStart(timeframeStart: Optional) = - timeframeStart(timeframeStart.getOrNull()) - - /** - * Sets [Builder.timeframeStart] to an arbitrary JSON value. - * - * You should usually call [Builder.timeframeStart] with a well-typed [OffsetDateTime] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun timeframeStart(timeframeStart: JsonField) = apply { - body.timeframeStart(timeframeStart) - } - - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { - body.additionalProperties(additionalBodyProperties) - } - - fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - body.putAdditionalProperty(key, value) - } - - fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = - apply { - body.putAllAdditionalProperties(additionalBodyProperties) - } - - fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } - - fun removeAllAdditionalBodyProperties(keys: Set) = apply { - body.removeAllAdditionalProperties(keys) - } - - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } - - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } - - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } - - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } - - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } - - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } - - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } - - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } - - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } - - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } - - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } - - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } - - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } - - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } - - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } - - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) - } - - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } - - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } - - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) - } - - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } - - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } - - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) - } - - /** - * Returns an immutable instance of [EventSearchParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .eventIds() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): EventSearchParams = - EventSearchParams( - body.build(), - additionalHeaders.build(), - additionalQueryParams.build(), - ) - } - override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventSearchResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventSearchResponse.kt index 949fcad5..0d5ff15c 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventSearchResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventSearchResponse.kt @@ -10,27 +10,27 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class EventSearchResponse -@JsonCreator private constructor( - @JsonProperty("data") - @ExcludeMissing - private val data: JsonField> = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val data: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") @ExcludeMissing data: JsonField> = JsonMissing.of() + ) : this(data, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -44,20 +44,15 @@ private constructor( */ @JsonProperty("data") @ExcludeMissing fun _data(): JsonField> = data + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): EventSearchResponse = apply { - if (validated) { - return@apply - } - - data().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -144,42 +139,68 @@ private constructor( fun build(): EventSearchResponse = EventSearchResponse( checkRequired("data", data).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): EventSearchResponse = apply { + if (validated) { + return@apply + } + + data().forEach { it.validate() } + validated = true + } + /** * The [Event](/core-concepts#event) resource represents a usage event that has been created for * a customer. Events are the core of Orb's usage-based billing model, and are used to calculate * the usage charges for a given billing period. */ - @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("customer_id") - @ExcludeMissing - private val customerId: JsonField = JsonMissing.of(), - @JsonProperty("deprecated") - @ExcludeMissing - private val deprecated: JsonField = JsonMissing.of(), - @JsonProperty("event_name") - @ExcludeMissing - private val eventName: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonProperty("properties") - @ExcludeMissing - private val properties: JsonValue = JsonMissing.of(), - @JsonProperty("timestamp") - @ExcludeMissing - private val timestamp: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val customerId: JsonField, + private val deprecated: JsonField, + private val eventName: JsonField, + private val externalCustomerId: JsonField, + private val properties: JsonValue, + private val timestamp: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("customer_id") + @ExcludeMissing + customerId: JsonField = JsonMissing.of(), + @JsonProperty("deprecated") + @ExcludeMissing + deprecated: JsonField = JsonMissing.of(), + @JsonProperty("event_name") + @ExcludeMissing + eventName: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + @JsonProperty("properties") @ExcludeMissing properties: JsonValue = JsonMissing.of(), + @JsonProperty("timestamp") + @ExcludeMissing + timestamp: JsonField = JsonMissing.of(), + ) : this( + id, + customerId, + deprecated, + eventName, + externalCustomerId, + properties, + timestamp, + mutableMapOf(), + ) + /** * A unique value, generated by the client, that is used to de-duplicate events. Exactly one * event with a given idempotency key will be ingested, which allows for safe request @@ -291,25 +312,15 @@ private constructor( @ExcludeMissing fun _timestamp(): JsonField = timestamp + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Data = apply { - if (validated) { - return@apply - } - - id() - customerId() - deprecated() - eventName() - externalCustomerId() - timestamp() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -505,10 +516,26 @@ private constructor( checkRequired("externalCustomerId", externalCustomerId), checkRequired("properties", properties), checkRequired("timestamp", timestamp), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Data = apply { + if (validated) { + return@apply + } + + id() + customerId() + deprecated() + eventName() + externalCustomerId() + timestamp() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventUpdateParams.kt index 5d574219..ce068e6b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventUpdateParams.kt @@ -10,15 +10,13 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -147,316 +145,234 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body + fun toBuilder() = Builder().from(this) - fun _pathParam(index: Int): String = - when (index) { - 0 -> eventId - else -> "" - } + companion object { - override fun _headers(): Headers = additionalHeaders + /** + * Returns a mutable builder for constructing an instance of [EventUpdateParams]. + * + * The following fields are required: + * ```java + * .eventId() + * .eventName() + * .properties() + * .timestamp() + * ``` + */ + @JvmStatic fun builder() = Builder() + } - override fun _queryParams(): QueryParams = additionalQueryParams + /** A builder for [EventUpdateParams]. */ + class Builder internal constructor() { - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("event_name") - @ExcludeMissing - private val eventName: JsonField = JsonMissing.of(), - @JsonProperty("properties") - @ExcludeMissing - private val properties: JsonValue = JsonMissing.of(), - @JsonProperty("timestamp") - @ExcludeMissing - private val timestamp: JsonField = JsonMissing.of(), - @JsonProperty("customer_id") - @ExcludeMissing - private val customerId: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { + private var eventId: String? = null + private var body: Body.Builder = Body.builder() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from(eventUpdateParams: EventUpdateParams) = apply { + eventId = eventUpdateParams.eventId + body = eventUpdateParams.body.toBuilder() + additionalHeaders = eventUpdateParams.additionalHeaders.toBuilder() + additionalQueryParams = eventUpdateParams.additionalQueryParams.toBuilder() + } + + fun eventId(eventId: String) = apply { this.eventId = eventId } + + /** A name to meaningfully identify the action or event type. */ + fun eventName(eventName: String) = apply { body.eventName(eventName) } /** - * A name to meaningfully identify the action or event type. + * Sets [Builder.eventName] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * You should usually call [Builder.eventName] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. */ - fun eventName(): String = eventName.getRequired("event_name") + fun eventName(eventName: JsonField) = apply { body.eventName(eventName) } /** * A dictionary of custom properties. Values in this dictionary must be numeric, boolean, or * strings. Nested dictionaries are disallowed. */ - @JsonProperty("properties") @ExcludeMissing fun _properties(): JsonValue = properties + fun properties(properties: JsonValue) = apply { body.properties(properties) } /** * An ISO 8601 format date with no timezone offset (i.e. UTC). This should represent the * time that usage was recorded, and is particularly important to attribute usage to a given * billing period. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun timestamp(): OffsetDateTime = timestamp.getRequired("timestamp") + fun timestamp(timestamp: OffsetDateTime) = apply { body.timestamp(timestamp) } /** - * The Orb Customer identifier + * Sets [Builder.timestamp] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.timestamp] with a well-typed [OffsetDateTime] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun customerId(): Optional = - Optional.ofNullable(customerId.getNullable("customer_id")) + fun timestamp(timestamp: JsonField) = apply { body.timestamp(timestamp) } - /** - * An alias for the Orb customer, whose mapping is specified when creating the customer - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun externalCustomerId(): Optional = - Optional.ofNullable(externalCustomerId.getNullable("external_customer_id")) + /** The Orb Customer identifier */ + fun customerId(customerId: String?) = apply { body.customerId(customerId) } - /** - * Returns the raw JSON value of [eventName]. - * - * Unlike [eventName], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("event_name") @ExcludeMissing fun _eventName(): JsonField = eventName + /** Alias for calling [Builder.customerId] with `customerId.orElse(null)`. */ + fun customerId(customerId: Optional) = customerId(customerId.getOrNull()) /** - * Returns the raw JSON value of [timestamp]. + * Sets [Builder.customerId] to an arbitrary JSON value. * - * Unlike [timestamp], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.customerId] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. */ - @JsonProperty("timestamp") - @ExcludeMissing - fun _timestamp(): JsonField = timestamp + fun customerId(customerId: JsonField) = apply { body.customerId(customerId) } + + /** An alias for the Orb customer, whose mapping is specified when creating the customer */ + fun externalCustomerId(externalCustomerId: String?) = apply { + body.externalCustomerId(externalCustomerId) + } /** - * Returns the raw JSON value of [customerId]. - * - * Unlike [customerId], this method doesn't throw if the JSON field has an unexpected type. + * Alias for calling [Builder.externalCustomerId] with `externalCustomerId.orElse(null)`. */ - @JsonProperty("customer_id") - @ExcludeMissing - fun _customerId(): JsonField = customerId + fun externalCustomerId(externalCustomerId: Optional) = + externalCustomerId(externalCustomerId.getOrNull()) /** - * Returns the raw JSON value of [externalCustomerId]. + * Sets [Builder.externalCustomerId] to an arbitrary JSON value. * - * Unlike [externalCustomerId], this method doesn't throw if the JSON field has an - * unexpected type. + * You should usually call [Builder.externalCustomerId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("external_customer_id") - @ExcludeMissing - fun _externalCustomerId(): JsonField = externalCustomerId + fun externalCustomerId(externalCustomerId: JsonField) = apply { + body.externalCustomerId(externalCustomerId) + } - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun additionalBodyProperties(additionalBodyProperties: Map) = apply { + body.additionalProperties(additionalBodyProperties) + } - private var validated: Boolean = false + fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { + body.putAdditionalProperty(key, value) + } - fun validate(): Body = apply { - if (validated) { - return@apply + fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = + apply { + body.putAllAdditionalProperties(additionalBodyProperties) } - eventName() - timestamp() - customerId() - externalCustomerId() - validated = true - } + fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } - fun toBuilder() = Builder().from(this) + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + body.removeAllAdditionalProperties(keys) + } - companion object { + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .eventName() - * .properties() - * .timestamp() - * ``` - */ - @JvmStatic fun builder() = Builder() + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) } - /** A builder for [Body]. */ - class Builder internal constructor() { + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) + } - private var eventName: JsonField? = null - private var properties: JsonValue? = null - private var timestamp: JsonField? = null - private var customerId: JsonField = JsonMissing.of() - private var externalCustomerId: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } - @JvmSynthetic - internal fun from(body: Body) = apply { - eventName = body.eventName - properties = body.properties - timestamp = body.timestamp - customerId = body.customerId - externalCustomerId = body.externalCustomerId - additionalProperties = body.additionalProperties.toMutableMap() - } + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - /** A name to meaningfully identify the action or event type. */ - fun eventName(eventName: String) = eventName(JsonField.of(eventName)) + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - /** - * Sets [Builder.eventName] to an arbitrary JSON value. - * - * You should usually call [Builder.eventName] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun eventName(eventName: JsonField) = apply { this.eventName = eventName } + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } - /** - * A dictionary of custom properties. Values in this dictionary must be numeric, - * boolean, or strings. Nested dictionaries are disallowed. - */ - fun properties(properties: JsonValue) = apply { this.properties = properties } + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } - /** - * An ISO 8601 format date with no timezone offset (i.e. UTC). This should represent the - * time that usage was recorded, and is particularly important to attribute usage to a - * given billing period. - */ - fun timestamp(timestamp: OffsetDateTime) = timestamp(JsonField.of(timestamp)) + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** - * Sets [Builder.timestamp] to an arbitrary JSON value. - * - * You should usually call [Builder.timestamp] with a well-typed [OffsetDateTime] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun timestamp(timestamp: JsonField) = apply { - this.timestamp = timestamp - } + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** The Orb Customer identifier */ - fun customerId(customerId: String?) = customerId(JsonField.ofNullable(customerId)) + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } - /** Alias for calling [Builder.customerId] with `customerId.orElse(null)`. */ - fun customerId(customerId: Optional) = customerId(customerId.getOrNull()) - - /** - * Sets [Builder.customerId] to an arbitrary JSON value. - * - * You should usually call [Builder.customerId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun customerId(customerId: JsonField) = apply { this.customerId = customerId } - - /** - * An alias for the Orb customer, whose mapping is specified when creating the customer - */ - fun externalCustomerId(externalCustomerId: String?) = - externalCustomerId(JsonField.ofNullable(externalCustomerId)) - - /** - * Alias for calling [Builder.externalCustomerId] with - * `externalCustomerId.orElse(null)`. - */ - fun externalCustomerId(externalCustomerId: Optional) = - externalCustomerId(externalCustomerId.getOrNull()) - - /** - * Sets [Builder.externalCustomerId] to an arbitrary JSON value. - * - * You should usually call [Builder.externalCustomerId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun externalCustomerId(externalCustomerId: JsonField) = apply { - this.externalCustomerId = externalCustomerId - } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .eventName() - * .properties() - * .timestamp() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body( - checkRequired("eventName", eventName), - checkRequired("properties", properties), - checkRequired("timestamp", timestamp), - customerId, - externalCustomerId, - additionalProperties.toImmutable(), - ) + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } - override fun equals(other: Any?): Boolean { - if (this === other) { - return true + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) } - return /* spotless:off */ other is Body && eventName == other.eventName && properties == other.properties && timestamp == other.timestamp && customerId == other.customerId && externalCustomerId == other.externalCustomerId && additionalProperties == other.additionalProperties /* spotless:on */ + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) } - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(eventName, properties, timestamp, customerId, externalCustomerId, additionalProperties) } - /* spotless:on */ + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } - override fun hashCode(): Int = hashCode + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - override fun toString() = - "Body{eventName=$eventName, properties=$properties, timestamp=$timestamp, customerId=$customerId, externalCustomerId=$externalCustomerId, additionalProperties=$additionalProperties}" - } + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - fun toBuilder() = Builder().from(this) + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } - companion object { + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } /** - * Returns a mutable builder for constructing an instance of [EventUpdateParams]. + * Returns an immutable instance of [EventUpdateParams]. + * + * Further updates to this [Builder] will not mutate the returned instance. * * The following fields are required: * ```java @@ -465,239 +381,330 @@ private constructor( * .properties() * .timestamp() * ``` + * + * @throws IllegalStateException if any required field is unset. */ - @JvmStatic fun builder() = Builder() + fun build(): EventUpdateParams = + EventUpdateParams( + checkRequired("eventId", eventId), + body.build(), + additionalHeaders.build(), + additionalQueryParams.build(), + ) } - /** A builder for [EventUpdateParams]. */ - @NoAutoDetect - class Builder internal constructor() { - - private var eventId: String? = null - private var body: Body.Builder = Body.builder() - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + @JvmSynthetic internal fun _body(): Body = body - @JvmSynthetic - internal fun from(eventUpdateParams: EventUpdateParams) = apply { - eventId = eventUpdateParams.eventId - body = eventUpdateParams.body.toBuilder() - additionalHeaders = eventUpdateParams.additionalHeaders.toBuilder() - additionalQueryParams = eventUpdateParams.additionalQueryParams.toBuilder() + fun _pathParam(index: Int): String = + when (index) { + 0 -> eventId + else -> "" } - fun eventId(eventId: String) = apply { this.eventId = eventId } + override fun _headers(): Headers = additionalHeaders - /** A name to meaningfully identify the action or event type. */ - fun eventName(eventName: String) = apply { body.eventName(eventName) } + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body + private constructor( + private val eventName: JsonField, + private val properties: JsonValue, + private val timestamp: JsonField, + private val customerId: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("event_name") + @ExcludeMissing + eventName: JsonField = JsonMissing.of(), + @JsonProperty("properties") @ExcludeMissing properties: JsonValue = JsonMissing.of(), + @JsonProperty("timestamp") + @ExcludeMissing + timestamp: JsonField = JsonMissing.of(), + @JsonProperty("customer_id") + @ExcludeMissing + customerId: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(eventName, properties, timestamp, customerId, externalCustomerId, mutableMapOf()) /** - * Sets [Builder.eventName] to an arbitrary JSON value. + * A name to meaningfully identify the action or event type. * - * You should usually call [Builder.eventName] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun eventName(eventName: JsonField) = apply { body.eventName(eventName) } + fun eventName(): String = eventName.getRequired("event_name") /** * A dictionary of custom properties. Values in this dictionary must be numeric, boolean, or * strings. Nested dictionaries are disallowed. */ - fun properties(properties: JsonValue) = apply { body.properties(properties) } + @JsonProperty("properties") @ExcludeMissing fun _properties(): JsonValue = properties /** * An ISO 8601 format date with no timezone offset (i.e. UTC). This should represent the * time that usage was recorded, and is particularly important to attribute usage to a given * billing period. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun timestamp(timestamp: OffsetDateTime) = apply { body.timestamp(timestamp) } + fun timestamp(): OffsetDateTime = timestamp.getRequired("timestamp") /** - * Sets [Builder.timestamp] to an arbitrary JSON value. + * The Orb Customer identifier * - * You should usually call [Builder.timestamp] with a well-typed [OffsetDateTime] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun timestamp(timestamp: JsonField) = apply { body.timestamp(timestamp) } - - /** The Orb Customer identifier */ - fun customerId(customerId: String?) = apply { body.customerId(customerId) } + fun customerId(): Optional = + Optional.ofNullable(customerId.getNullable("customer_id")) - /** Alias for calling [Builder.customerId] with `customerId.orElse(null)`. */ - fun customerId(customerId: Optional) = customerId(customerId.getOrNull()) + /** + * An alias for the Orb customer, whose mapping is specified when creating the customer + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun externalCustomerId(): Optional = + Optional.ofNullable(externalCustomerId.getNullable("external_customer_id")) /** - * Sets [Builder.customerId] to an arbitrary JSON value. + * Returns the raw JSON value of [eventName]. * - * You should usually call [Builder.customerId] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. + * Unlike [eventName], this method doesn't throw if the JSON field has an unexpected type. */ - fun customerId(customerId: JsonField) = apply { body.customerId(customerId) } + @JsonProperty("event_name") @ExcludeMissing fun _eventName(): JsonField = eventName - /** An alias for the Orb customer, whose mapping is specified when creating the customer */ - fun externalCustomerId(externalCustomerId: String?) = apply { - body.externalCustomerId(externalCustomerId) - } + /** + * Returns the raw JSON value of [timestamp]. + * + * Unlike [timestamp], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("timestamp") + @ExcludeMissing + fun _timestamp(): JsonField = timestamp /** - * Alias for calling [Builder.externalCustomerId] with `externalCustomerId.orElse(null)`. + * Returns the raw JSON value of [customerId]. + * + * Unlike [customerId], this method doesn't throw if the JSON field has an unexpected type. */ - fun externalCustomerId(externalCustomerId: Optional) = - externalCustomerId(externalCustomerId.getOrNull()) + @JsonProperty("customer_id") + @ExcludeMissing + fun _customerId(): JsonField = customerId /** - * Sets [Builder.externalCustomerId] to an arbitrary JSON value. + * Returns the raw JSON value of [externalCustomerId]. * - * You should usually call [Builder.externalCustomerId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [externalCustomerId], this method doesn't throw if the JSON field has an + * unexpected type. */ - fun externalCustomerId(externalCustomerId: JsonField) = apply { - body.externalCustomerId(externalCustomerId) - } + @JsonProperty("external_customer_id") + @ExcludeMissing + fun _externalCustomerId(): JsonField = externalCustomerId - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { - body.additionalProperties(additionalBodyProperties) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } - fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - body.putAdditionalProperty(key, value) - } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) - fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = - apply { - body.putAllAdditionalProperties(additionalBodyProperties) - } + fun toBuilder() = Builder().from(this) - fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + companion object { - fun removeAllAdditionalBodyProperties(keys: Set) = apply { - body.removeAllAdditionalProperties(keys) + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .eventName() + * .properties() + * .timestamp() + * ``` + */ + @JvmStatic fun builder() = Builder() } - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** A builder for [Body]. */ + class Builder internal constructor() { - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + private var eventName: JsonField? = null + private var properties: JsonValue? = null + private var timestamp: JsonField? = null + private var customerId: JsonField = JsonMissing.of() + private var externalCustomerId: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } + @JvmSynthetic + internal fun from(body: Body) = apply { + eventName = body.eventName + properties = body.properties + timestamp = body.timestamp + customerId = body.customerId + externalCustomerId = body.externalCustomerId + additionalProperties = body.additionalProperties.toMutableMap() + } - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } + /** A name to meaningfully identify the action or event type. */ + fun eventName(eventName: String) = eventName(JsonField.of(eventName)) - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** + * Sets [Builder.eventName] to an arbitrary JSON value. + * + * You should usually call [Builder.eventName] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun eventName(eventName: JsonField) = apply { this.eventName = eventName } - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** + * A dictionary of custom properties. Values in this dictionary must be numeric, + * boolean, or strings. Nested dictionaries are disallowed. + */ + fun properties(properties: JsonValue) = apply { this.properties = properties } - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } + /** + * An ISO 8601 format date with no timezone offset (i.e. UTC). This should represent the + * time that usage was recorded, and is particularly important to attribute usage to a + * given billing period. + */ + fun timestamp(timestamp: OffsetDateTime) = timestamp(JsonField.of(timestamp)) - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } + /** + * Sets [Builder.timestamp] to an arbitrary JSON value. + * + * You should usually call [Builder.timestamp] with a well-typed [OffsetDateTime] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun timestamp(timestamp: JsonField) = apply { + this.timestamp = timestamp + } - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** The Orb Customer identifier */ + fun customerId(customerId: String?) = customerId(JsonField.ofNullable(customerId)) - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** Alias for calling [Builder.customerId] with `customerId.orElse(null)`. */ + fun customerId(customerId: Optional) = customerId(customerId.getOrNull()) - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + /** + * Sets [Builder.customerId] to an arbitrary JSON value. + * + * You should usually call [Builder.customerId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun customerId(customerId: JsonField) = apply { this.customerId = customerId } - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } + /** + * An alias for the Orb customer, whose mapping is specified when creating the customer + */ + fun externalCustomerId(externalCustomerId: String?) = + externalCustomerId(JsonField.ofNullable(externalCustomerId)) - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + /** + * Alias for calling [Builder.externalCustomerId] with + * `externalCustomerId.orElse(null)`. + */ + fun externalCustomerId(externalCustomerId: Optional) = + externalCustomerId(externalCustomerId.getOrNull()) - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + /** + * Sets [Builder.externalCustomerId] to an arbitrary JSON value. + * + * You should usually call [Builder.externalCustomerId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun externalCustomerId(externalCustomerId: JsonField) = apply { + this.externalCustomerId = externalCustomerId + } - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) - } + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) } - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .eventName() + * .properties() + * .timestamp() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body( + checkRequired("eventName", eventName), + checkRequired("properties", properties), + checkRequired("timestamp", timestamp), + customerId, + externalCustomerId, + additionalProperties.toMutableMap(), + ) } - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } + private var validated: Boolean = false - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + fun validate(): Body = apply { + if (validated) { + return@apply + } + + eventName() + timestamp() + customerId() + externalCustomerId() + validated = true } - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + override fun equals(other: Any?): Boolean { + if (this === other) { + return true } - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } - - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) + return /* spotless:off */ other is Body && eventName == other.eventName && properties == other.properties && timestamp == other.timestamp && customerId == other.customerId && externalCustomerId == other.externalCustomerId && additionalProperties == other.additionalProperties /* spotless:on */ } - /** - * Returns an immutable instance of [EventUpdateParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .eventId() - * .eventName() - * .properties() - * .timestamp() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): EventUpdateParams = - EventUpdateParams( - checkRequired("eventId", eventId), - body.build(), - additionalHeaders.build(), - additionalQueryParams.build(), - ) + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(eventName, properties, timestamp, customerId, externalCustomerId, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{eventName=$eventName, properties=$properties, timestamp=$timestamp, customerId=$customerId, externalCustomerId=$externalCustomerId, additionalProperties=$additionalProperties}" } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventUpdateResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventUpdateResponse.kt index a2e7dd3c..e376ea36 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventUpdateResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventUpdateResponse.kt @@ -10,23 +10,22 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects -@NoAutoDetect class EventUpdateResponse -@JsonCreator private constructor( - @JsonProperty("amended") - @ExcludeMissing - private val amended: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val amended: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amended") @ExcludeMissing amended: JsonField = JsonMissing.of() + ) : this(amended, mutableMapOf()) + /** * event_id of the amended event, if successfully ingested * @@ -42,20 +41,15 @@ private constructor( */ @JsonProperty("amended") @ExcludeMissing fun _amended(): JsonField = amended + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): EventUpdateResponse = apply { - if (validated) { - return@apply - } - - amended() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -129,10 +123,21 @@ private constructor( fun build(): EventUpdateResponse = EventUpdateResponse( checkRequired("amended", amended), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): EventUpdateResponse = apply { + if (validated) { + return@apply + } + + amended() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventVolumeListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventVolumeListParams.kt index 52aef59e..a0a2772d 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventVolumeListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventVolumeListParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -64,24 +63,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - put( - "timeframe_start", - DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(timeframeStart), - ) - cursor?.let { put("cursor", it) } - limit?.let { put("limit", it.toString()) } - timeframeEnd?.let { - put("timeframe_end", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -98,7 +79,6 @@ private constructor( } /** A builder for [EventVolumeListParams]. */ - @NoAutoDetect class Builder internal constructor() { private var timeframeStart: OffsetDateTime? = null @@ -282,6 +262,24 @@ private constructor( ) } + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + put( + "timeframe_start", + DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(timeframeStart), + ) + cursor?.let { put("cursor", it) } + limit?.let { put("limit", it.toString()) } + timeframeEnd?.let { + put("timeframe_end", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + putAll(additionalQueryParams) + } + .build() + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventVolumes.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventVolumes.kt index 54374ac1..7b28ca52 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventVolumes.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventVolumes.kt @@ -10,25 +10,25 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects -@NoAutoDetect class EventVolumes -@JsonCreator private constructor( - @JsonProperty("data") - @ExcludeMissing - private val data: JsonField> = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val data: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") @ExcludeMissing data: JsonField> = JsonMissing.of() + ) : this(data, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -42,20 +42,15 @@ private constructor( */ @JsonProperty("data") @ExcludeMissing fun _data(): JsonField> = data + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): EventVolumes = apply { - if (validated) { - return@apply - } - - data().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -142,31 +137,44 @@ private constructor( fun build(): EventVolumes = EventVolumes( checkRequired("data", data).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): EventVolumes = apply { + if (validated) { + return@apply + } + + data().forEach { it.validate() } + validated = true + } + /** * An EventVolume contains the event volume ingested in an hourly window. The timestamp used for * the aggregation is the `timestamp` datetime field on events. */ - @NoAutoDetect class Data - @JsonCreator private constructor( - @JsonProperty("count") - @ExcludeMissing - private val count: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_end") - @ExcludeMissing - private val timeframeEnd: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_start") - @ExcludeMissing - private val timeframeStart: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val count: JsonField, + private val timeframeEnd: JsonField, + private val timeframeStart: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("count") @ExcludeMissing count: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_end") + @ExcludeMissing + timeframeEnd: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_start") + @ExcludeMissing + timeframeStart: JsonField = JsonMissing.of(), + ) : this(count, timeframeEnd, timeframeStart, mutableMapOf()) + /** * The number of events ingested with a timestamp between the timeframe * @@ -214,22 +222,15 @@ private constructor( @ExcludeMissing fun _timeframeStart(): JsonField = timeframeStart + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Data = apply { - if (validated) { - return@apply - } - - count() - timeframeEnd() - timeframeStart() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -342,10 +343,23 @@ private constructor( checkRequired("count", count), checkRequired("timeframeEnd", timeframeEnd), checkRequired("timeframeStart", timeframeStart), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Data = apply { + if (validated) { + return@apply + } + + count() + timeframeEnd() + timeframeStart() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/Invoice.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/Invoice.kt index 48eab5cf..4d6cfd79 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/Invoice.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/Invoice.kt @@ -20,14 +20,13 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -39,129 +38,198 @@ import kotlin.jvm.optionals.getOrNull * They are generated at the end of a billing period, or as the result of an action, such as a * cancellation. */ -@NoAutoDetect class Invoice -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount_due") - @ExcludeMissing - private val amountDue: JsonField = JsonMissing.of(), - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("billing_address") - @ExcludeMissing - private val billingAddress: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_notes") - @ExcludeMissing - private val creditNotes: JsonField> = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("customer_balance_transactions") - @ExcludeMissing - private val customerBalanceTransactions: JsonField> = - JsonMissing.of(), - @JsonProperty("customer_tax_id") - @ExcludeMissing - private val customerTaxId: JsonField = JsonMissing.of(), - @JsonProperty("discount") @ExcludeMissing private val discount: JsonValue = JsonMissing.of(), - @JsonProperty("discounts") - @ExcludeMissing - private val discounts: JsonField> = JsonMissing.of(), - @JsonProperty("due_date") - @ExcludeMissing - private val dueDate: JsonField = JsonMissing.of(), - @JsonProperty("eligible_to_issue_at") - @ExcludeMissing - private val eligibleToIssueAt: JsonField = JsonMissing.of(), - @JsonProperty("hosted_invoice_url") - @ExcludeMissing - private val hostedInvoiceUrl: JsonField = JsonMissing.of(), - @JsonProperty("invoice_date") - @ExcludeMissing - private val invoiceDate: JsonField = JsonMissing.of(), - @JsonProperty("invoice_number") - @ExcludeMissing - private val invoiceNumber: JsonField = JsonMissing.of(), - @JsonProperty("invoice_pdf") - @ExcludeMissing - private val invoicePdf: JsonField = JsonMissing.of(), - @JsonProperty("invoice_source") - @ExcludeMissing - private val invoiceSource: JsonField = JsonMissing.of(), - @JsonProperty("issue_failed_at") - @ExcludeMissing - private val issueFailedAt: JsonField = JsonMissing.of(), - @JsonProperty("issued_at") - @ExcludeMissing - private val issuedAt: JsonField = JsonMissing.of(), - @JsonProperty("line_items") - @ExcludeMissing - private val lineItems: JsonField> = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("memo") @ExcludeMissing private val memo: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("paid_at") - @ExcludeMissing - private val paidAt: JsonField = JsonMissing.of(), - @JsonProperty("payment_attempts") - @ExcludeMissing - private val paymentAttempts: JsonField> = JsonMissing.of(), - @JsonProperty("payment_failed_at") - @ExcludeMissing - private val paymentFailedAt: JsonField = JsonMissing.of(), - @JsonProperty("payment_started_at") - @ExcludeMissing - private val paymentStartedAt: JsonField = JsonMissing.of(), - @JsonProperty("scheduled_issue_at") - @ExcludeMissing - private val scheduledIssueAt: JsonField = JsonMissing.of(), - @JsonProperty("shipping_address") - @ExcludeMissing - private val shippingAddress: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("subscription") - @ExcludeMissing - private val subscription: JsonField = JsonMissing.of(), - @JsonProperty("subtotal") - @ExcludeMissing - private val subtotal: JsonField = JsonMissing.of(), - @JsonProperty("sync_failed_at") - @ExcludeMissing - private val syncFailedAt: JsonField = JsonMissing.of(), - @JsonProperty("total") @ExcludeMissing private val total: JsonField = JsonMissing.of(), - @JsonProperty("voided_at") - @ExcludeMissing - private val voidedAt: JsonField = JsonMissing.of(), - @JsonProperty("will_auto_issue") - @ExcludeMissing - private val willAutoIssue: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amountDue: JsonField, + private val autoCollection: JsonField, + private val billingAddress: JsonField, + private val createdAt: JsonField, + private val creditNotes: JsonField>, + private val currency: JsonField, + private val customer: JsonField, + private val customerBalanceTransactions: JsonField>, + private val customerTaxId: JsonField, + private val discount: JsonValue, + private val discounts: JsonField>, + private val dueDate: JsonField, + private val eligibleToIssueAt: JsonField, + private val hostedInvoiceUrl: JsonField, + private val invoiceDate: JsonField, + private val invoiceNumber: JsonField, + private val invoicePdf: JsonField, + private val invoiceSource: JsonField, + private val issueFailedAt: JsonField, + private val issuedAt: JsonField, + private val lineItems: JsonField>, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val memo: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val paidAt: JsonField, + private val paymentAttempts: JsonField>, + private val paymentFailedAt: JsonField, + private val paymentStartedAt: JsonField, + private val scheduledIssueAt: JsonField, + private val shippingAddress: JsonField, + private val status: JsonField, + private val subscription: JsonField, + private val subtotal: JsonField, + private val syncFailedAt: JsonField, + private val total: JsonField, + private val voidedAt: JsonField, + private val willAutoIssue: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount_due") @ExcludeMissing amountDue: JsonField = JsonMissing.of(), + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("billing_address") + @ExcludeMissing + billingAddress: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_notes") + @ExcludeMissing + creditNotes: JsonField> = JsonMissing.of(), + @JsonProperty("currency") @ExcludeMissing currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") @ExcludeMissing customer: JsonField = JsonMissing.of(), + @JsonProperty("customer_balance_transactions") + @ExcludeMissing + customerBalanceTransactions: JsonField> = JsonMissing.of(), + @JsonProperty("customer_tax_id") + @ExcludeMissing + customerTaxId: JsonField = JsonMissing.of(), + @JsonProperty("discount") @ExcludeMissing discount: JsonValue = JsonMissing.of(), + @JsonProperty("discounts") + @ExcludeMissing + discounts: JsonField> = JsonMissing.of(), + @JsonProperty("due_date") + @ExcludeMissing + dueDate: JsonField = JsonMissing.of(), + @JsonProperty("eligible_to_issue_at") + @ExcludeMissing + eligibleToIssueAt: JsonField = JsonMissing.of(), + @JsonProperty("hosted_invoice_url") + @ExcludeMissing + hostedInvoiceUrl: JsonField = JsonMissing.of(), + @JsonProperty("invoice_date") + @ExcludeMissing + invoiceDate: JsonField = JsonMissing.of(), + @JsonProperty("invoice_number") + @ExcludeMissing + invoiceNumber: JsonField = JsonMissing.of(), + @JsonProperty("invoice_pdf") + @ExcludeMissing + invoicePdf: JsonField = JsonMissing.of(), + @JsonProperty("invoice_source") + @ExcludeMissing + invoiceSource: JsonField = JsonMissing.of(), + @JsonProperty("issue_failed_at") + @ExcludeMissing + issueFailedAt: JsonField = JsonMissing.of(), + @JsonProperty("issued_at") + @ExcludeMissing + issuedAt: JsonField = JsonMissing.of(), + @JsonProperty("line_items") + @ExcludeMissing + lineItems: JsonField> = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("memo") @ExcludeMissing memo: JsonField = JsonMissing.of(), + @JsonProperty("metadata") @ExcludeMissing metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("paid_at") + @ExcludeMissing + paidAt: JsonField = JsonMissing.of(), + @JsonProperty("payment_attempts") + @ExcludeMissing + paymentAttempts: JsonField> = JsonMissing.of(), + @JsonProperty("payment_failed_at") + @ExcludeMissing + paymentFailedAt: JsonField = JsonMissing.of(), + @JsonProperty("payment_started_at") + @ExcludeMissing + paymentStartedAt: JsonField = JsonMissing.of(), + @JsonProperty("scheduled_issue_at") + @ExcludeMissing + scheduledIssueAt: JsonField = JsonMissing.of(), + @JsonProperty("shipping_address") + @ExcludeMissing + shippingAddress: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + @JsonProperty("subscription") + @ExcludeMissing + subscription: JsonField = JsonMissing.of(), + @JsonProperty("subtotal") @ExcludeMissing subtotal: JsonField = JsonMissing.of(), + @JsonProperty("sync_failed_at") + @ExcludeMissing + syncFailedAt: JsonField = JsonMissing.of(), + @JsonProperty("total") @ExcludeMissing total: JsonField = JsonMissing.of(), + @JsonProperty("voided_at") + @ExcludeMissing + voidedAt: JsonField = JsonMissing.of(), + @JsonProperty("will_auto_issue") + @ExcludeMissing + willAutoIssue: JsonField = JsonMissing.of(), + ) : this( + id, + amountDue, + autoCollection, + billingAddress, + createdAt, + creditNotes, + currency, + customer, + customerBalanceTransactions, + customerTaxId, + discount, + discounts, + dueDate, + eligibleToIssueAt, + hostedInvoiceUrl, + invoiceDate, + invoiceNumber, + invoicePdf, + invoiceSource, + issueFailedAt, + issuedAt, + lineItems, + maximum, + maximumAmount, + memo, + metadata, + minimum, + minimumAmount, + paidAt, + paymentAttempts, + paymentFailedAt, + paymentStartedAt, + scheduledIssueAt, + shippingAddress, + status, + subscription, + subtotal, + syncFailedAt, + total, + voidedAt, + willAutoIssue, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -930,59 +998,15 @@ private constructor( @ExcludeMissing fun _willAutoIssue(): JsonField = willAutoIssue + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Invoice = apply { - if (validated) { - return@apply - } - - id() - amountDue() - autoCollection().validate() - billingAddress().ifPresent { it.validate() } - createdAt() - creditNotes().forEach { it.validate() } - currency() - customer().validate() - customerBalanceTransactions().forEach { it.validate() } - customerTaxId().ifPresent { it.validate() } - discounts().forEach { it.validate() } - dueDate() - eligibleToIssueAt() - hostedInvoiceUrl() - invoiceDate() - invoiceNumber() - invoicePdf() - invoiceSource() - issueFailedAt() - issuedAt() - lineItems().forEach { it.validate() } - maximum().ifPresent { it.validate() } - maximumAmount() - memo() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - paidAt() - paymentAttempts().forEach { it.validate() } - paymentFailedAt() - paymentStartedAt() - scheduledIssueAt() - shippingAddress().ifPresent { it.validate() } - status() - subscription().ifPresent { it.validate() } - subtotal() - syncFailedAt() - total() - voidedAt() - willAutoIssue() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2099,30 +2123,83 @@ private constructor( checkRequired("total", total), checkRequired("voidedAt", voidedAt), checkRequired("willAutoIssue", willAutoIssue), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): Invoice = apply { + if (validated) { + return@apply + } + + id() + amountDue() + autoCollection().validate() + billingAddress().ifPresent { it.validate() } + createdAt() + creditNotes().forEach { it.validate() } + currency() + customer().validate() + customerBalanceTransactions().forEach { it.validate() } + customerTaxId().ifPresent { it.validate() } + discounts().forEach { it.validate() } + dueDate() + eligibleToIssueAt() + hostedInvoiceUrl() + invoiceDate() + invoiceNumber() + invoicePdf() + invoiceSource() + issueFailedAt() + issuedAt() + lineItems().forEach { it.validate() } + maximum().ifPresent { it.validate() } + maximumAmount() + memo() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + paidAt() + paymentAttempts().forEach { it.validate() } + paymentFailedAt() + paymentStartedAt() + scheduledIssueAt() + shippingAddress().ifPresent { it.validate() } + status() + subscription().ifPresent { it.validate() } + subtotal() + syncFailedAt() + total() + voidedAt() + willAutoIssue() + validated = true + } + class AutoCollection - @JsonCreator private constructor( - @JsonProperty("enabled") - @ExcludeMissing - private val enabled: JsonField = JsonMissing.of(), - @JsonProperty("next_attempt_at") - @ExcludeMissing - private val nextAttemptAt: JsonField = JsonMissing.of(), - @JsonProperty("num_attempts") - @ExcludeMissing - private val numAttempts: JsonField = JsonMissing.of(), - @JsonProperty("previously_attempted_at") - @ExcludeMissing - private val previouslyAttemptedAt: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val enabled: JsonField, + private val nextAttemptAt: JsonField, + private val numAttempts: JsonField, + private val previouslyAttemptedAt: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("enabled") @ExcludeMissing enabled: JsonField = JsonMissing.of(), + @JsonProperty("next_attempt_at") + @ExcludeMissing + nextAttemptAt: JsonField = JsonMissing.of(), + @JsonProperty("num_attempts") + @ExcludeMissing + numAttempts: JsonField = JsonMissing.of(), + @JsonProperty("previously_attempted_at") + @ExcludeMissing + previouslyAttemptedAt: JsonField = JsonMissing.of(), + ) : this(enabled, nextAttemptAt, numAttempts, previouslyAttemptedAt, mutableMapOf()) + /** * True only if auto-collection is enabled for this invoice. * @@ -2201,23 +2278,15 @@ private constructor( @ExcludeMissing fun _previouslyAttemptedAt(): JsonField = previouslyAttemptedAt + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AutoCollection = apply { - if (validated) { - return@apply - } - - enabled() - nextAttemptAt() - numAttempts() - previouslyAttemptedAt() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2391,10 +2460,24 @@ private constructor( checkRequired("nextAttemptAt", nextAttemptAt), checkRequired("numAttempts", numAttempts), checkRequired("previouslyAttemptedAt", previouslyAttemptedAt), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AutoCollection = apply { + if (validated) { + return@apply + } + + enabled() + nextAttemptAt() + numAttempts() + previouslyAttemptedAt() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2413,33 +2496,30 @@ private constructor( "AutoCollection{enabled=$enabled, nextAttemptAt=$nextAttemptAt, numAttempts=$numAttempts, previouslyAttemptedAt=$previouslyAttemptedAt, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingAddress - @JsonCreator private constructor( - @JsonProperty("city") - @ExcludeMissing - private val city: JsonField = JsonMissing.of(), - @JsonProperty("country") - @ExcludeMissing - private val country: JsonField = JsonMissing.of(), - @JsonProperty("line1") - @ExcludeMissing - private val line1: JsonField = JsonMissing.of(), - @JsonProperty("line2") - @ExcludeMissing - private val line2: JsonField = JsonMissing.of(), - @JsonProperty("postal_code") - @ExcludeMissing - private val postalCode: JsonField = JsonMissing.of(), - @JsonProperty("state") - @ExcludeMissing - private val state: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val city: JsonField, + private val country: JsonField, + private val line1: JsonField, + private val line2: JsonField, + private val postalCode: JsonField, + private val state: JsonField, + private val additionalProperties: MutableMap, ) { - /** + @JsonCreator + private constructor( + @JsonProperty("city") @ExcludeMissing city: JsonField = JsonMissing.of(), + @JsonProperty("country") @ExcludeMissing country: JsonField = JsonMissing.of(), + @JsonProperty("line1") @ExcludeMissing line1: JsonField = JsonMissing.of(), + @JsonProperty("line2") @ExcludeMissing line2: JsonField = JsonMissing.of(), + @JsonProperty("postal_code") + @ExcludeMissing + postalCode: JsonField = JsonMissing.of(), + @JsonProperty("state") @ExcludeMissing state: JsonField = JsonMissing.of(), + ) : this(city, country, line1, line2, postalCode, state, mutableMapOf()) + + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). */ @@ -2520,25 +2600,15 @@ private constructor( */ @JsonProperty("state") @ExcludeMissing fun _state(): JsonField = state + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingAddress = apply { - if (validated) { - return@apply - } - - city() - country() - line1() - line2() - postalCode() - state() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2710,10 +2780,26 @@ private constructor( checkRequired("line2", line2), checkRequired("postalCode", postalCode), checkRequired("state", state), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingAddress = apply { + if (validated) { + return@apply + } + + city() + country() + line1() + line2() + postalCode() + state() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2732,33 +2818,33 @@ private constructor( "BillingAddress{city=$city, country=$country, line1=$line1, line2=$line2, postalCode=$postalCode, state=$state, additionalProperties=$additionalProperties}" } - @NoAutoDetect class CreditNote - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("credit_note_number") - @ExcludeMissing - private val creditNoteNumber: JsonField = JsonMissing.of(), - @JsonProperty("memo") - @ExcludeMissing - private val memo: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonProperty("total") - @ExcludeMissing - private val total: JsonField = JsonMissing.of(), - @JsonProperty("type") - @ExcludeMissing - private val type: JsonField = JsonMissing.of(), - @JsonProperty("voided_at") - @ExcludeMissing - private val voidedAt: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val creditNoteNumber: JsonField, + private val memo: JsonField, + private val reason: JsonField, + private val total: JsonField, + private val type: JsonField, + private val voidedAt: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("credit_note_number") + @ExcludeMissing + creditNoteNumber: JsonField = JsonMissing.of(), + @JsonProperty("memo") @ExcludeMissing memo: JsonField = JsonMissing.of(), + @JsonProperty("reason") @ExcludeMissing reason: JsonField = JsonMissing.of(), + @JsonProperty("total") @ExcludeMissing total: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + @JsonProperty("voided_at") + @ExcludeMissing + voidedAt: JsonField = JsonMissing.of(), + ) : this(id, creditNoteNumber, memo, reason, total, type, voidedAt, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -2861,26 +2947,15 @@ private constructor( @ExcludeMissing fun _voidedAt(): JsonField = voidedAt + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditNote = apply { - if (validated) { - return@apply - } - - id() - creditNoteNumber() - memo() - reason() - total() - type() - voidedAt() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3064,10 +3139,27 @@ private constructor( checkRequired("total", total), checkRequired("type", type), checkRequired("voidedAt", voidedAt), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditNote = apply { + if (validated) { + return@apply + } + + id() + creditNoteNumber() + memo() + reason() + total() + type() + voidedAt() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -3086,18 +3178,21 @@ private constructor( "CreditNote{id=$id, creditNoteNumber=$creditNoteNumber, memo=$memo, reason=$reason, total=$total, type=$type, voidedAt=$voidedAt, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -3128,21 +3223,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3242,10 +3331,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -3264,40 +3365,59 @@ private constructor( "Customer{id=$id, externalCustomerId=$externalCustomerId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class CustomerBalanceTransaction - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("action") - @ExcludeMissing - private val action: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_note") - @ExcludeMissing - private val creditNote: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("invoice") - @ExcludeMissing - private val invoice: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonProperty("type") @ExcludeMissing private val type: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val action: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditNote: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val invoice: JsonField, + private val startingBalance: JsonField, + private val type: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("action") @ExcludeMissing action: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_note") + @ExcludeMissing + creditNote: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("invoice") + @ExcludeMissing + invoice: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + ) : this( + id, + action, + amount, + createdAt, + creditNote, + description, + endingBalance, + invoice, + startingBalance, + type, + mutableMapOf(), + ) + /** * A unique id for this transaction. * @@ -3456,29 +3576,15 @@ private constructor( */ @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CustomerBalanceTransaction = apply { - if (validated) { - return@apply - } - - id() - action() - amount() - createdAt() - creditNote().ifPresent { it.validate() } - description() - endingBalance() - invoice().ifPresent { it.validate() } - startingBalance() - type() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3730,10 +3836,30 @@ private constructor( checkRequired("invoice", invoice), checkRequired("startingBalance", startingBalance), checkRequired("type", type), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CustomerBalanceTransaction = apply { + if (validated) { + return@apply + } + + id() + action() + amount() + createdAt() + creditNote().ifPresent { it.validate() } + description() + endingBalance() + invoice().ifPresent { it.validate() } + startingBalance() + type() + validated = true + } + class Action @JsonCreator private constructor(private val value: JsonField) : Enum { /** @@ -3876,17 +4002,17 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditNote - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * The id of the Credit note * @@ -3903,20 +4029,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditNote = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3992,7 +4113,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): CreditNote = - CreditNote(checkRequired("id", id), additionalProperties.toImmutable()) + CreditNote(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): CreditNote = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -4013,17 +4145,17 @@ private constructor( "CreditNote{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InnerInvoice - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * The Invoice id * @@ -4040,20 +4172,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InnerInvoice = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4129,13 +4256,24 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): InnerInvoice = - InnerInvoice(checkRequired("id", id), additionalProperties.toImmutable()) + InnerInvoice(checkRequired("id", id), additionalProperties.toMutableMap()) } - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } + private var validated: Boolean = false + + fun validate(): InnerInvoice = apply { + if (validated) { + return@apply + } + + id() + validated = true + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } return /* spotless:off */ other is InnerInvoice && id == other.id && additionalProperties == other.additionalProperties /* spotless:on */ } @@ -4372,21 +4510,21 @@ private constructor( * |Venezuela |`ve_rif` |Venezuelan RIF Number | * |Vietnam |`vn_tin` |Vietnamese Tax ID Number | */ - @NoAutoDetect class CustomerTaxId - @JsonCreator private constructor( - @JsonProperty("country") - @ExcludeMissing - private val country: JsonField = JsonMissing.of(), - @JsonProperty("type") @ExcludeMissing private val type: JsonField = JsonMissing.of(), - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val country: JsonField, + private val type: JsonField, + private val value: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("country") @ExcludeMissing country: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + @JsonProperty("value") @ExcludeMissing value: JsonField = JsonMissing.of(), + ) : this(country, type, value, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -4426,22 +4564,15 @@ private constructor( */ @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CustomerTaxId = apply { - if (validated) { - return@apply - } - - country() - type() - value() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4547,10 +4678,23 @@ private constructor( checkRequired("country", country), checkRequired("type", type), checkRequired("value", value), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CustomerTaxId = apply { + if (validated) { + return@apply + } + + country() + type() + value() + validated = true + } + class Country @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -5745,78 +5889,113 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class LineItem - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjusted_subtotal") - @ExcludeMissing - private val adjustedSubtotal: JsonField = JsonMissing.of(), - @JsonProperty("adjustments") - @ExcludeMissing - private val adjustments: JsonField> = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("credits_applied") - @ExcludeMissing - private val creditsApplied: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("filter") - @ExcludeMissing - private val filter: JsonField = JsonMissing.of(), - @JsonProperty("grouping") - @ExcludeMissing - private val grouping: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("partially_invoiced_amount") - @ExcludeMissing - private val partiallyInvoicedAmount: JsonField = JsonMissing.of(), - @JsonProperty("price") - @ExcludeMissing - private val price: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("sub_line_items") - @ExcludeMissing - private val subLineItems: JsonField> = JsonMissing.of(), - @JsonProperty("subtotal") - @ExcludeMissing - private val subtotal: JsonField = JsonMissing.of(), - @JsonProperty("tax_amounts") - @ExcludeMissing - private val taxAmounts: JsonField> = JsonMissing.of(), - @JsonProperty("usage_customer_ids") - @ExcludeMissing - private val usageCustomerIds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustedSubtotal: JsonField, + private val adjustments: JsonField>, + private val amount: JsonField, + private val creditsApplied: JsonField, + private val discount: JsonField, + private val endDate: JsonField, + private val filter: JsonField, + private val grouping: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val name: JsonField, + private val partiallyInvoicedAmount: JsonField, + private val price: JsonField, + private val quantity: JsonField, + private val startDate: JsonField, + private val subLineItems: JsonField>, + private val subtotal: JsonField, + private val taxAmounts: JsonField>, + private val usageCustomerIds: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjusted_subtotal") + @ExcludeMissing + adjustedSubtotal: JsonField = JsonMissing.of(), + @JsonProperty("adjustments") + @ExcludeMissing + adjustments: JsonField> = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("credits_applied") + @ExcludeMissing + creditsApplied: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("filter") @ExcludeMissing filter: JsonField = JsonMissing.of(), + @JsonProperty("grouping") + @ExcludeMissing + grouping: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("partially_invoiced_amount") + @ExcludeMissing + partiallyInvoicedAmount: JsonField = JsonMissing.of(), + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("sub_line_items") + @ExcludeMissing + subLineItems: JsonField> = JsonMissing.of(), + @JsonProperty("subtotal") + @ExcludeMissing + subtotal: JsonField = JsonMissing.of(), + @JsonProperty("tax_amounts") + @ExcludeMissing + taxAmounts: JsonField> = JsonMissing.of(), + @JsonProperty("usage_customer_ids") + @ExcludeMissing + usageCustomerIds: JsonField> = JsonMissing.of(), + ) : this( + id, + adjustedSubtotal, + adjustments, + amount, + creditsApplied, + discount, + endDate, + filter, + grouping, + maximum, + maximumAmount, + minimum, + minimumAmount, + name, + partiallyInvoicedAmount, + price, + quantity, + startDate, + subLineItems, + subtotal, + taxAmounts, + usageCustomerIds, + mutableMapOf(), + ) + /** * A unique ID for this line item. * @@ -6207,41 +6386,15 @@ private constructor( @ExcludeMissing fun _usageCustomerIds(): JsonField> = usageCustomerIds + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): LineItem = apply { - if (validated) { - return@apply - } - - id() - adjustedSubtotal() - adjustments().forEach { it.validate() } - amount() - creditsApplied() - discount().ifPresent { it.validate() } - endDate() - filter() - grouping() - maximum().ifPresent { it.validate() } - maximumAmount() - minimum().ifPresent { it.validate() } - minimumAmount() - name() - partiallyInvoicedAmount() - price().ifPresent { it.validate() } - quantity() - startDate() - subLineItems().forEach { it.validate() } - subtotal() - taxAmounts().forEach { it.validate() } - usageCustomerIds() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7039,10 +7192,42 @@ private constructor( checkRequired("subtotal", subtotal), checkRequired("taxAmounts", taxAmounts).map { it.toImmutable() }, checkRequired("usageCustomerIds", usageCustomerIds).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): LineItem = apply { + if (validated) { + return@apply + } + + id() + adjustedSubtotal() + adjustments().forEach { it.validate() } + amount() + creditsApplied() + discount().ifPresent { it.validate() } + endDate() + filter() + grouping() + maximum().ifPresent { it.validate() } + maximumAmount() + minimum().ifPresent { it.validate() } + minimumAmount() + name() + partiallyInvoicedAmount() + price().ifPresent { it.validate() } + quantity() + startDate() + subLineItems().forEach { it.validate() } + subtotal() + taxAmounts().forEach { it.validate() } + usageCustomerIds() + validated = true + } + @JsonDeserialize(using = Adjustment.Deserializer::class) @JsonSerialize(using = Adjustment.Serializer::class) class Adjustment @@ -7328,35 +7513,50 @@ private constructor( } } - @NoAutoDetect class MonetaryUsageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val reason: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amount, + appliesToPriceIds, + isInvoiceLevel, + reason, + usageDiscount, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -7481,26 +7681,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MonetaryUsageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amount() - appliesToPriceIds() - isInvoiceLevel() - reason() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7720,10 +7909,27 @@ private constructor( checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("reason", reason), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MonetaryUsageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amount() + appliesToPriceIds() + isInvoiceLevel() + reason() + usageDiscount() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -7844,40 +8050,55 @@ private constructor( "MonetaryUsageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, amount=$amount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, reason=$reason, usageDiscount=$usageDiscount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MonetaryAmountDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amount: JsonField, + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected - * value). - */ + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amount, + amountDiscount, + appliesToPriceIds, + isInvoiceLevel, + reason, + mutableMapOf(), + ) + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected + * value). + */ fun id(): String = id.getRequired("id") /** @@ -7997,26 +8218,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MonetaryAmountDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amount() - amountDiscount() - appliesToPriceIds() - isInvoiceLevel() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8236,10 +8446,27 @@ private constructor( }, checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MonetaryAmountDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amount() + amountDiscount() + appliesToPriceIds() + isInvoiceLevel() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -8360,35 +8587,50 @@ private constructor( "MonetaryAmountDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, amount=$amount, amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MonetaryPercentageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val percentageDiscount: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amount, + appliesToPriceIds, + isInvoiceLevel, + percentageDiscount, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -8514,26 +8756,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MonetaryPercentageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amount() - appliesToPriceIds() - isInvoiceLevel() - percentageDiscount() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8753,10 +8984,27 @@ private constructor( checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("percentageDiscount", percentageDiscount), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MonetaryPercentageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amount() + appliesToPriceIds() + isInvoiceLevel() + percentageDiscount() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -8877,38 +9125,55 @@ private constructor( "MonetaryPercentageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, amount=$amount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, percentageDiscount=$percentageDiscount, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MonetaryMinimumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val itemId: JsonField, + private val minimumAmount: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amount, + appliesToPriceIds, + isInvoiceLevel, + itemId, + minimumAmount, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -9050,27 +9315,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MonetaryMinimumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amount() - appliesToPriceIds() - isInvoiceLevel() - itemId() - minimumAmount() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9306,10 +9559,28 @@ private constructor( checkRequired("itemId", itemId), checkRequired("minimumAmount", minimumAmount), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MonetaryMinimumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amount() + appliesToPriceIds() + isInvoiceLevel() + itemId() + minimumAmount() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -9430,35 +9701,50 @@ private constructor( "MonetaryMinimumAdjustment{id=$id, adjustmentType=$adjustmentType, amount=$amount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, itemId=$itemId, minimumAmount=$minimumAmount, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MonetaryMaximumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val maximumAmount: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amount, + appliesToPriceIds, + isInvoiceLevel, + maximumAmount, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -9583,26 +9869,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MonetaryMaximumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amount() - appliesToPriceIds() - isInvoiceLevel() - maximumAmount() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9821,10 +10096,27 @@ private constructor( checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("maximumAmount", maximumAmount), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MonetaryMaximumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amount() + appliesToPriceIds() + isInvoiceLevel() + maximumAmount() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -9948,20 +10240,23 @@ private constructor( /** This field is deprecated in favor of `adjustments`. */ @Deprecated("deprecated") - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -10002,21 +10297,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10134,10 +10423,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -10158,20 +10459,23 @@ private constructor( /** This field is deprecated in favor of `adjustments`. */ @Deprecated("deprecated") - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -10212,21 +10516,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10344,10 +10642,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -10539,32 +10849,37 @@ private constructor( } } - @NoAutoDetect class MatrixSubLineItem - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("grouping") - @ExcludeMissing - private val grouping: JsonField = JsonMissing.of(), - @JsonProperty("matrix_config") - @ExcludeMissing - private val matrixConfig: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("type") - @ExcludeMissing - private val type: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val grouping: JsonField, + private val matrixConfig: JsonField, + private val name: JsonField, + private val quantity: JsonField, + private val type: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("grouping") + @ExcludeMissing + grouping: JsonField = JsonMissing.of(), + @JsonProperty("matrix_config") + @ExcludeMissing + matrixConfig: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + ) : this(amount, grouping, matrixConfig, name, quantity, type, mutableMapOf()) + /** * The total amount for this sub line item. * @@ -10663,25 +10978,15 @@ private constructor( */ @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixSubLineItem = apply { - if (validated) { - return@apply - } - - amount() - grouping().ifPresent { it.validate() } - matrixConfig().validate() - name() - quantity() - type() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10846,24 +11151,43 @@ private constructor( checkRequired("name", name), checkRequired("quantity", quantity), checkRequired("type", type), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): MatrixSubLineItem = apply { + if (validated) { + return@apply + } + + amount() + grouping().ifPresent { it.validate() } + matrixConfig().validate() + name() + quantity() + type() + validated = true + } + class Grouping - @JsonCreator private constructor( - @JsonProperty("key") - @ExcludeMissing - private val key: JsonField = JsonMissing.of(), - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val key: JsonField, + private val value: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("key") + @ExcludeMissing + key: JsonField = JsonMissing.of(), + @JsonProperty("value") + @ExcludeMissing + value: JsonField = JsonMissing.of(), + ) : this(key, value, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or * is unexpectedly missing or null (e.g. if the server responded with an @@ -10895,21 +11219,15 @@ private constructor( */ @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Grouping = apply { - if (validated) { - return@apply - } - - key() - value() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -11007,10 +11325,22 @@ private constructor( Grouping( checkRequired("key", key), checkRequired("value", value), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Grouping = apply { + if (validated) { + return@apply + } + + key() + value() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -11029,17 +11359,19 @@ private constructor( "Grouping{key=$key, value=$value, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MatrixConfig - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of() + ) : this(dimensionValues, mutableMapOf()) + /** * The ordered dimension values for this line item. * @@ -11060,20 +11392,15 @@ private constructor( @ExcludeMissing fun _dimensionValues(): JsonField> = dimensionValues + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixConfig = apply { - if (validated) { - return@apply - } - - dimensionValues() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -11171,10 +11498,21 @@ private constructor( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MatrixConfig = apply { + if (validated) { + return@apply + } + + dimensionValues() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -11310,32 +11648,37 @@ private constructor( "MatrixSubLineItem{amount=$amount, grouping=$grouping, matrixConfig=$matrixConfig, name=$name, quantity=$quantity, type=$type, additionalProperties=$additionalProperties}" } - @NoAutoDetect class TierSubLineItem - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("grouping") - @ExcludeMissing - private val grouping: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("tier_config") - @ExcludeMissing - private val tierConfig: JsonField = JsonMissing.of(), - @JsonProperty("type") - @ExcludeMissing - private val type: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val grouping: JsonField, + private val name: JsonField, + private val quantity: JsonField, + private val tierConfig: JsonField, + private val type: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("grouping") + @ExcludeMissing + grouping: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("tier_config") + @ExcludeMissing + tierConfig: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + ) : this(amount, grouping, name, quantity, tierConfig, type, mutableMapOf()) + /** * The total amount for this sub line item. * @@ -11434,25 +11777,15 @@ private constructor( */ @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TierSubLineItem = apply { - if (validated) { - return@apply - } - - amount() - grouping().ifPresent { it.validate() } - name() - quantity() - tierConfig().validate() - type() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -11615,24 +11948,43 @@ private constructor( checkRequired("quantity", quantity), checkRequired("tierConfig", tierConfig), checkRequired("type", type), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TierSubLineItem = apply { + if (validated) { + return@apply + } + + amount() + grouping().ifPresent { it.validate() } + name() + quantity() + tierConfig().validate() + type() + validated = true + } + class Grouping - @JsonCreator private constructor( - @JsonProperty("key") - @ExcludeMissing - private val key: JsonField = JsonMissing.of(), - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val key: JsonField, + private val value: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("key") + @ExcludeMissing + key: JsonField = JsonMissing.of(), + @JsonProperty("value") + @ExcludeMissing + value: JsonField = JsonMissing.of(), + ) : this(key, value, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or * is unexpectedly missing or null (e.g. if the server responded with an @@ -11664,23 +12016,17 @@ private constructor( */ @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) - private var validated: Boolean = false - - fun validate(): Grouping = apply { - if (validated) { - return@apply - } - - key() - value() - validated = true - } - - fun toBuilder() = Builder().from(this) + fun toBuilder() = Builder().from(this) companion object { @@ -11776,10 +12122,22 @@ private constructor( Grouping( checkRequired("key", key), checkRequired("value", value), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Grouping = apply { + if (validated) { + return@apply + } + + key() + value() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -11798,23 +12156,27 @@ private constructor( "Grouping{key=$key, value=$value, additionalProperties=$additionalProperties}" } - @NoAutoDetect class TierConfig - @JsonCreator private constructor( - @JsonProperty("first_unit") - @ExcludeMissing - private val firstUnit: JsonField = JsonMissing.of(), - @JsonProperty("last_unit") - @ExcludeMissing - private val lastUnit: JsonField = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val firstUnit: JsonField, + private val lastUnit: JsonField, + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("first_unit") + @ExcludeMissing + firstUnit: JsonField = JsonMissing.of(), + @JsonProperty("last_unit") + @ExcludeMissing + lastUnit: JsonField = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + ) : this(firstUnit, lastUnit, unitAmount, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or * is unexpectedly missing or null (e.g. if the server responded with an @@ -11866,22 +12228,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TierConfig = apply { - if (validated) { - return@apply - } - - firstUnit() - lastUnit() - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12007,10 +12362,23 @@ private constructor( checkRequired("firstUnit", firstUnit), checkRequired("lastUnit", lastUnit), checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): TierConfig = apply { + if (validated) { + return@apply + } + + firstUnit() + lastUnit() + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -12146,29 +12514,33 @@ private constructor( "TierSubLineItem{amount=$amount, grouping=$grouping, name=$name, quantity=$quantity, tierConfig=$tierConfig, type=$type, additionalProperties=$additionalProperties}" } - @NoAutoDetect class OtherSubLineItem - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("grouping") - @ExcludeMissing - private val grouping: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("type") - @ExcludeMissing - private val type: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val grouping: JsonField, + private val name: JsonField, + private val quantity: JsonField, + private val type: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("grouping") + @ExcludeMissing + grouping: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + ) : this(amount, grouping, name, quantity, type, mutableMapOf()) + /** * The total amount for this sub line item. * @@ -12250,24 +12622,15 @@ private constructor( */ @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): OtherSubLineItem = apply { - if (validated) { - return@apply - } - - amount() - grouping().ifPresent { it.validate() } - name() - quantity() - type() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12412,24 +12775,42 @@ private constructor( checkRequired("name", name), checkRequired("quantity", quantity), checkRequired("type", type), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): OtherSubLineItem = apply { + if (validated) { + return@apply + } + + amount() + grouping().ifPresent { it.validate() } + name() + quantity() + type() + validated = true + } + class Grouping - @JsonCreator private constructor( - @JsonProperty("key") - @ExcludeMissing - private val key: JsonField = JsonMissing.of(), - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val key: JsonField, + private val value: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("key") + @ExcludeMissing + key: JsonField = JsonMissing.of(), + @JsonProperty("value") + @ExcludeMissing + value: JsonField = JsonMissing.of(), + ) : this(key, value, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or * is unexpectedly missing or null (e.g. if the server responded with an @@ -12461,21 +12842,15 @@ private constructor( */ @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Grouping = apply { - if (validated) { - return@apply - } - - key() - value() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12573,10 +12948,22 @@ private constructor( Grouping( checkRequired("key", key), checkRequired("value", value), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Grouping = apply { + if (validated) { + return@apply + } + + key() + value() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -12713,23 +13100,27 @@ private constructor( } } - @NoAutoDetect class TaxAmount - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("tax_rate_description") - @ExcludeMissing - private val taxRateDescription: JsonField = JsonMissing.of(), - @JsonProperty("tax_rate_percentage") - @ExcludeMissing - private val taxRatePercentage: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val taxRateDescription: JsonField, + private val taxRatePercentage: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("tax_rate_description") + @ExcludeMissing + taxRateDescription: JsonField = JsonMissing.of(), + @JsonProperty("tax_rate_percentage") + @ExcludeMissing + taxRatePercentage: JsonField = JsonMissing.of(), + ) : this(amount, taxRateDescription, taxRatePercentage, mutableMapOf()) + /** * The amount of additional tax incurred by this tax rate. * @@ -12785,22 +13176,15 @@ private constructor( @ExcludeMissing fun _taxRatePercentage(): JsonField = taxRatePercentage + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TaxAmount = apply { - if (validated) { - return@apply - } - - amount() - taxRateDescription() - taxRatePercentage() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12925,10 +13309,23 @@ private constructor( checkRequired("amount", amount), checkRequired("taxRateDescription", taxRateDescription), checkRequired("taxRatePercentage", taxRatePercentage), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): TaxAmount = apply { + if (validated) { + return@apply + } + + amount() + taxRateDescription() + taxRatePercentage() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -12965,20 +13362,23 @@ private constructor( "LineItem{id=$id, adjustedSubtotal=$adjustedSubtotal, adjustments=$adjustments, amount=$amount, creditsApplied=$creditsApplied, discount=$discount, endDate=$endDate, filter=$filter, grouping=$grouping, maximum=$maximum, maximumAmount=$maximumAmount, minimum=$minimum, minimumAmount=$minimumAmount, name=$name, partiallyInvoicedAmount=$partiallyInvoicedAmount, price=$price, quantity=$quantity, startDate=$startDate, subLineItems=$subLineItems, subtotal=$subtotal, taxAmounts=$taxAmounts, usageCustomerIds=$usageCustomerIds, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, this * can be a subset of prices. @@ -13017,21 +13417,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13143,10 +13537,22 @@ private constructor( Maximum( checkRequired("appliesToPriceIds", appliesToPriceIds).map { it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -13170,27 +13576,20 @@ private constructor( * dictionary. Individual keys can be removed by setting the value to `null`, and the entire * metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13234,7 +13633,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -13254,20 +13663,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, this * can be a subset of prices. @@ -13306,21 +13718,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13432,10 +13838,22 @@ private constructor( Minimum( checkRequired("appliesToPriceIds", appliesToPriceIds).map { it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -13454,30 +13872,43 @@ private constructor( "Minimum{appliesToPriceIds=$appliesToPriceIds, minimumAmount=$minimumAmount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PaymentAttempt - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("payment_provider") - @ExcludeMissing - private val paymentProvider: JsonField = JsonMissing.of(), - @JsonProperty("payment_provider_id") - @ExcludeMissing - private val paymentProviderId: JsonField = JsonMissing.of(), - @JsonProperty("succeeded") - @ExcludeMissing - private val succeeded: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val paymentProvider: JsonField, + private val paymentProviderId: JsonField, + private val succeeded: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("payment_provider") + @ExcludeMissing + paymentProvider: JsonField = JsonMissing.of(), + @JsonProperty("payment_provider_id") + @ExcludeMissing + paymentProviderId: JsonField = JsonMissing.of(), + @JsonProperty("succeeded") + @ExcludeMissing + succeeded: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + paymentProvider, + paymentProviderId, + succeeded, + mutableMapOf(), + ) + /** * The ID of the payment attempt. * @@ -13578,25 +14009,15 @@ private constructor( */ @JsonProperty("succeeded") @ExcludeMissing fun _succeeded(): JsonField = succeeded + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PaymentAttempt = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - paymentProvider() - paymentProviderId() - succeeded() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13774,10 +14195,26 @@ private constructor( checkRequired("paymentProvider", paymentProvider), checkRequired("paymentProviderId", paymentProviderId), checkRequired("succeeded", succeeded), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PaymentAttempt = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + paymentProvider() + paymentProviderId() + succeeded() + validated = true + } + /** The payment provider that attempted to collect the payment. */ class PaymentProvider @JsonCreator @@ -13894,32 +14331,29 @@ private constructor( "PaymentAttempt{id=$id, amount=$amount, createdAt=$createdAt, paymentProvider=$paymentProvider, paymentProviderId=$paymentProviderId, succeeded=$succeeded, additionalProperties=$additionalProperties}" } - @NoAutoDetect class ShippingAddress - @JsonCreator private constructor( - @JsonProperty("city") - @ExcludeMissing - private val city: JsonField = JsonMissing.of(), - @JsonProperty("country") - @ExcludeMissing - private val country: JsonField = JsonMissing.of(), - @JsonProperty("line1") - @ExcludeMissing - private val line1: JsonField = JsonMissing.of(), - @JsonProperty("line2") - @ExcludeMissing - private val line2: JsonField = JsonMissing.of(), - @JsonProperty("postal_code") - @ExcludeMissing - private val postalCode: JsonField = JsonMissing.of(), - @JsonProperty("state") - @ExcludeMissing - private val state: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val city: JsonField, + private val country: JsonField, + private val line1: JsonField, + private val line2: JsonField, + private val postalCode: JsonField, + private val state: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("city") @ExcludeMissing city: JsonField = JsonMissing.of(), + @JsonProperty("country") @ExcludeMissing country: JsonField = JsonMissing.of(), + @JsonProperty("line1") @ExcludeMissing line1: JsonField = JsonMissing.of(), + @JsonProperty("line2") @ExcludeMissing line2: JsonField = JsonMissing.of(), + @JsonProperty("postal_code") + @ExcludeMissing + postalCode: JsonField = JsonMissing.of(), + @JsonProperty("state") @ExcludeMissing state: JsonField = JsonMissing.of(), + ) : this(city, country, line1, line2, postalCode, state, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -14001,25 +14435,15 @@ private constructor( */ @JsonProperty("state") @ExcludeMissing fun _state(): JsonField = state + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ShippingAddress = apply { - if (validated) { - return@apply - } - - city() - country() - line1() - line2() - postalCode() - state() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -14191,10 +14615,26 @@ private constructor( checkRequired("line2", line2), checkRequired("postalCode", postalCode), checkRequired("state", state), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): ShippingAddress = apply { + if (validated) { + return@apply + } + + city() + country() + line1() + line2() + postalCode() + state() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -14328,15 +14768,17 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class Subscription - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -14350,20 +14792,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Subscription = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -14435,7 +14872,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): Subscription = - Subscription(checkRequired("id", id), additionalProperties.toImmutable()) + Subscription(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Subscription = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceCreateParams.kt index 6375c5ab..99b10f8c 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceCreateParams.kt @@ -11,17 +11,16 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.LocalDate import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -197,580 +196,355 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body + fun toBuilder() = Builder().from(this) - override fun _headers(): Headers = additionalHeaders + companion object { - override fun _queryParams(): QueryParams = additionalQueryParams + /** + * Returns a mutable builder for constructing an instance of [InvoiceCreateParams]. + * + * The following fields are required: + * ```java + * .currency() + * .invoiceDate() + * .lineItems() + * .netTerms() + * ``` + */ + @JvmStatic fun builder() = Builder() + } - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("invoice_date") - @ExcludeMissing - private val invoiceDate: JsonField = JsonMissing.of(), - @JsonProperty("line_items") - @ExcludeMissing - private val lineItems: JsonField> = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("customer_id") - @ExcludeMissing - private val customerId: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonProperty("memo") - @ExcludeMissing - private val memo: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("will_auto_issue") - @ExcludeMissing - private val willAutoIssue: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { + /** A builder for [InvoiceCreateParams]. */ + class Builder internal constructor() { + + private var body: Body.Builder = Body.builder() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from(invoiceCreateParams: InvoiceCreateParams) = apply { + body = invoiceCreateParams.body.toBuilder() + additionalHeaders = invoiceCreateParams.additionalHeaders.toBuilder() + additionalQueryParams = invoiceCreateParams.additionalQueryParams.toBuilder() + } /** * An ISO 4217 currency string. Must be the same as the customer's currency if it is set. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun currency(): String = currency.getRequired("currency") + fun currency(currency: String) = apply { body.currency(currency) } /** - * Optional invoice date to set. Must be in the past, if not set, `invoice_date` is set to - * the current time in the customer's timezone. + * Sets [Builder.currency] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * You should usually call [Builder.currency] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - fun invoiceDate(): OffsetDateTime = invoiceDate.getRequired("invoice_date") + fun currency(currency: JsonField) = apply { body.currency(currency) } /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * Optional invoice date to set. Must be in the past, if not set, `invoice_date` is set to + * the current time in the customer's timezone. */ - fun lineItems(): List = lineItems.getRequired("line_items") + fun invoiceDate(invoiceDate: OffsetDateTime) = apply { body.invoiceDate(invoiceDate) } /** - * Determines the difference between the invoice issue date for subscription invoices as the - * date that they are due. A value of '0' here represents that the invoice is due on issue, - * whereas a value of 30 represents that the customer has 30 days to pay the invoice. + * Sets [Builder.invoiceDate] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * You should usually call [Builder.invoiceDate] with a well-typed [OffsetDateTime] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun netTerms(): Long = netTerms.getRequired("net_terms") + fun invoiceDate(invoiceDate: JsonField) = apply { + body.invoiceDate(invoiceDate) + } + + fun lineItems(lineItems: List) = apply { body.lineItems(lineItems) } /** - * The id of the `Customer` to create this invoice for. One of `customer_id` and - * `external_customer_id` are required. + * Sets [Builder.lineItems] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.lineItems] with a well-typed `List` value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun customerId(): Optional = - Optional.ofNullable(customerId.getNullable("customer_id")) + fun lineItems(lineItems: JsonField>) = apply { body.lineItems(lineItems) } /** - * An optional discount to attach to the invoice. + * Adds a single [LineItem] to [lineItems]. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * @throws IllegalStateException if the field was previously set to a non-list. */ - fun discount(): Optional = Optional.ofNullable(discount.getNullable("discount")) + fun addLineItem(lineItem: LineItem) = apply { body.addLineItem(lineItem) } /** - * The `external_customer_id` of the `Customer` to create this invoice for. One of - * `customer_id` and `external_customer_id` are required. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Determines the difference between the invoice issue date for subscription invoices as the + * date that they are due. A value of '0' here represents that the invoice is due on issue, + * whereas a value of 30 represents that the customer has 30 days to pay the invoice. */ - fun externalCustomerId(): Optional = - Optional.ofNullable(externalCustomerId.getNullable("external_customer_id")) + fun netTerms(netTerms: Long) = apply { body.netTerms(netTerms) } /** - * An optional memo to attach to the invoice. + * Sets [Builder.netTerms] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.netTerms] with a well-typed [Long] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - fun memo(): Optional = Optional.ofNullable(memo.getNullable("memo")) + fun netTerms(netTerms: JsonField) = apply { body.netTerms(netTerms) } /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * The id of the `Customer` to create this invoice for. One of `customer_id` and + * `external_customer_id` are required. */ - fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) + fun customerId(customerId: String?) = apply { body.customerId(customerId) } + + /** Alias for calling [Builder.customerId] with `customerId.orElse(null)`. */ + fun customerId(customerId: Optional) = customerId(customerId.getOrNull()) /** - * When true, this invoice will automatically be issued upon creation. When false, the - * resulting invoice will require manual review to issue. Defaulted to false. + * Sets [Builder.customerId] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.customerId] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. */ - fun willAutoIssue(): Optional = - Optional.ofNullable(willAutoIssue.getNullable("will_auto_issue")) + fun customerId(customerId: JsonField) = apply { body.customerId(customerId) } + + /** An optional discount to attach to the invoice. */ + fun discount(discount: Discount?) = apply { body.discount(discount) } + + /** Alias for calling [Builder.discount] with `discount.orElse(null)`. */ + fun discount(discount: Optional) = discount(discount.getOrNull()) /** - * Returns the raw JSON value of [currency]. + * Sets [Builder.discount] to an arbitrary JSON value. * - * Unlike [currency], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.discount] with a well-typed [Discount] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. */ - @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + fun discount(discount: JsonField) = apply { body.discount(discount) } + + /** Alias for calling [discount] with `Discount.ofPercentage(percentage)`. */ + fun discount(percentage: PercentageDiscount) = apply { body.discount(percentage) } + + /** Alias for calling [discount] with `Discount.ofTrial(trial)`. */ + fun discount(trial: TrialDiscount) = apply { body.discount(trial) } /** - * Returns the raw JSON value of [invoiceDate]. - * - * Unlike [invoiceDate], this method doesn't throw if the JSON field has an unexpected type. + * Alias for calling [discount] with the following: + * ```java + * TrialDiscount.builder() + * .discountType(TrialDiscount.DiscountType.TRIAL) + * .appliesToPriceIds(appliesToPriceIds) + * .build() + * ``` */ - @JsonProperty("invoice_date") - @ExcludeMissing - fun _invoiceDate(): JsonField = invoiceDate + fun trialDiscount(appliesToPriceIds: List) = apply { + body.trialDiscount(appliesToPriceIds) + } + + /** Alias for calling [discount] with `Discount.ofUsage(usage)`. */ + fun discount(usage: UsageDiscount) = apply { body.discount(usage) } + + /** Alias for calling [discount] with `Discount.ofAmount(amount)`. */ + fun discount(amount: AmountDiscount) = apply { body.discount(amount) } /** - * Returns the raw JSON value of [lineItems]. - * - * Unlike [lineItems], this method doesn't throw if the JSON field has an unexpected type. + * The `external_customer_id` of the `Customer` to create this invoice for. One of + * `customer_id` and `external_customer_id` are required. */ - @JsonProperty("line_items") - @ExcludeMissing - fun _lineItems(): JsonField> = lineItems + fun externalCustomerId(externalCustomerId: String?) = apply { + body.externalCustomerId(externalCustomerId) + } /** - * Returns the raw JSON value of [netTerms]. - * - * Unlike [netTerms], this method doesn't throw if the JSON field has an unexpected type. + * Alias for calling [Builder.externalCustomerId] with `externalCustomerId.orElse(null)`. */ - @JsonProperty("net_terms") @ExcludeMissing fun _netTerms(): JsonField = netTerms + fun externalCustomerId(externalCustomerId: Optional) = + externalCustomerId(externalCustomerId.getOrNull()) /** - * Returns the raw JSON value of [customerId]. + * Sets [Builder.externalCustomerId] to an arbitrary JSON value. * - * Unlike [customerId], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.externalCustomerId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("customer_id") - @ExcludeMissing - fun _customerId(): JsonField = customerId + fun externalCustomerId(externalCustomerId: JsonField) = apply { + body.externalCustomerId(externalCustomerId) + } + + /** An optional memo to attach to the invoice. */ + fun memo(memo: String?) = apply { body.memo(memo) } + + /** Alias for calling [Builder.memo] with `memo.orElse(null)`. */ + fun memo(memo: Optional) = memo(memo.getOrNull()) /** - * Returns the raw JSON value of [discount]. + * Sets [Builder.memo] to an arbitrary JSON value. * - * Unlike [discount], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.memo] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - @JsonProperty("discount") @ExcludeMissing fun _discount(): JsonField = discount + fun memo(memo: JsonField) = apply { body.memo(memo) } /** - * Returns the raw JSON value of [externalCustomerId]. - * - * Unlike [externalCustomerId], this method doesn't throw if the JSON field has an - * unexpected type. + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. */ - @JsonProperty("external_customer_id") - @ExcludeMissing - fun _externalCustomerId(): JsonField = externalCustomerId + fun metadata(metadata: Metadata?) = apply { body.metadata(metadata) } + + /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ + fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) /** - * Returns the raw JSON value of [memo]. + * Sets [Builder.metadata] to an arbitrary JSON value. * - * Unlike [memo], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.metadata] with a well-typed [Metadata] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. */ - @JsonProperty("memo") @ExcludeMissing fun _memo(): JsonField = memo + fun metadata(metadata: JsonField) = apply { body.metadata(metadata) } /** - * Returns the raw JSON value of [metadata]. - * - * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. + * When true, this invoice will automatically be issued upon creation. When false, the + * resulting invoice will require manual review to issue. Defaulted to false. */ - @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata + fun willAutoIssue(willAutoIssue: Boolean) = apply { body.willAutoIssue(willAutoIssue) } /** - * Returns the raw JSON value of [willAutoIssue]. + * Sets [Builder.willAutoIssue] to an arbitrary JSON value. * - * Unlike [willAutoIssue], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.willAutoIssue] with a well-typed [Boolean] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("will_auto_issue") - @ExcludeMissing - fun _willAutoIssue(): JsonField = willAutoIssue + fun willAutoIssue(willAutoIssue: JsonField) = apply { + body.willAutoIssue(willAutoIssue) + } - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun additionalBodyProperties(additionalBodyProperties: Map) = apply { + body.additionalProperties(additionalBodyProperties) + } - private var validated: Boolean = false + fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { + body.putAdditionalProperty(key, value) + } - fun validate(): Body = apply { - if (validated) { - return@apply + fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = + apply { + body.putAllAdditionalProperties(additionalBodyProperties) } - currency() - invoiceDate() - lineItems().forEach { it.validate() } - netTerms() - customerId() - discount().ifPresent { it.validate() } - externalCustomerId() - memo() - metadata().ifPresent { it.validate() } - willAutoIssue() - validated = true + fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + body.removeAllAdditionalProperties(keys) } - fun toBuilder() = Builder().from(this) + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - companion object { + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .currency() - * .invoiceDate() - * .lineItems() - * .netTerms() - * ``` - */ - @JvmStatic fun builder() = Builder() + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) } - /** A builder for [Body]. */ - class Builder internal constructor() { + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } - private var currency: JsonField? = null - private var invoiceDate: JsonField? = null - private var lineItems: JsonField>? = null - private var netTerms: JsonField? = null - private var customerId: JsonField = JsonMissing.of() - private var discount: JsonField = JsonMissing.of() - private var externalCustomerId: JsonField = JsonMissing.of() - private var memo: JsonField = JsonMissing.of() - private var metadata: JsonField = JsonMissing.of() - private var willAutoIssue: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - @JvmSynthetic - internal fun from(body: Body) = apply { - currency = body.currency - invoiceDate = body.invoiceDate - lineItems = body.lineItems.map { it.toMutableList() } - netTerms = body.netTerms - customerId = body.customerId - discount = body.discount - externalCustomerId = body.externalCustomerId - memo = body.memo - metadata = body.metadata - willAutoIssue = body.willAutoIssue - additionalProperties = body.additionalProperties.toMutableMap() - } + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - /** - * An ISO 4217 currency string. Must be the same as the customer's currency if it is - * set. - */ - fun currency(currency: String) = currency(JsonField.of(currency)) + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } - /** - * Sets [Builder.currency] to an arbitrary JSON value. - * - * You should usually call [Builder.currency] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun currency(currency: JsonField) = apply { this.currency = currency } + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } - /** - * Optional invoice date to set. Must be in the past, if not set, `invoice_date` is set - * to the current time in the customer's timezone. - */ - fun invoiceDate(invoiceDate: OffsetDateTime) = invoiceDate(JsonField.of(invoiceDate)) + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** - * Sets [Builder.invoiceDate] to an arbitrary JSON value. - * - * You should usually call [Builder.invoiceDate] with a well-typed [OffsetDateTime] - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - fun invoiceDate(invoiceDate: JsonField) = apply { - this.invoiceDate = invoiceDate - } + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - fun lineItems(lineItems: List) = lineItems(JsonField.of(lineItems)) + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } - /** - * Sets [Builder.lineItems] to an arbitrary JSON value. - * - * You should usually call [Builder.lineItems] with a well-typed `List` value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun lineItems(lineItems: JsonField>) = apply { - this.lineItems = lineItems.map { it.toMutableList() } - } + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } - /** - * Adds a single [LineItem] to [lineItems]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addLineItem(lineItem: LineItem) = apply { - lineItems = - (lineItems ?: JsonField.of(mutableListOf())).also { - checkKnown("lineItems", it).add(lineItem) - } - } + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - /** - * Determines the difference between the invoice issue date for subscription invoices as - * the date that they are due. A value of '0' here represents that the invoice is due on - * issue, whereas a value of 30 represents that the customer has 30 days to pay the - * invoice. - */ - fun netTerms(netTerms: Long) = netTerms(JsonField.of(netTerms)) + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - /** - * Sets [Builder.netTerms] to an arbitrary JSON value. - * - * You should usually call [Builder.netTerms] with a well-typed [Long] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun netTerms(netTerms: JsonField) = apply { this.netTerms = netTerms } + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } - /** - * The id of the `Customer` to create this invoice for. One of `customer_id` and - * `external_customer_id` are required. - */ - fun customerId(customerId: String?) = customerId(JsonField.ofNullable(customerId)) + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } - /** Alias for calling [Builder.customerId] with `customerId.orElse(null)`. */ - fun customerId(customerId: Optional) = customerId(customerId.getOrNull()) + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } - /** - * Sets [Builder.customerId] to an arbitrary JSON value. - * - * You should usually call [Builder.customerId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun customerId(customerId: JsonField) = apply { this.customerId = customerId } + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } - /** An optional discount to attach to the invoice. */ - fun discount(discount: Discount?) = discount(JsonField.ofNullable(discount)) + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) + } - /** Alias for calling [Builder.discount] with `discount.orElse(null)`. */ - fun discount(discount: Optional) = discount(discount.getOrNull()) + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } - /** - * Sets [Builder.discount] to an arbitrary JSON value. - * - * You should usually call [Builder.discount] with a well-typed [Discount] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun discount(discount: JsonField) = apply { this.discount = discount } + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - /** Alias for calling [discount] with `Discount.ofPercentage(percentage)`. */ - fun discount(percentage: PercentageDiscount) = - discount(Discount.ofPercentage(percentage)) + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - /** Alias for calling [discount] with `Discount.ofTrial(trial)`. */ - fun discount(trial: TrialDiscount) = discount(Discount.ofTrial(trial)) + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } - /** - * Alias for calling [discount] with the following: - * ```java - * TrialDiscount.builder() - * .discountType(TrialDiscount.DiscountType.TRIAL) - * .appliesToPriceIds(appliesToPriceIds) - * .build() - * ``` - */ - fun trialDiscount(appliesToPriceIds: List) = - discount( - TrialDiscount.builder() - .discountType(TrialDiscount.DiscountType.TRIAL) - .appliesToPriceIds(appliesToPriceIds) - .build() - ) - - /** Alias for calling [discount] with `Discount.ofUsage(usage)`. */ - fun discount(usage: UsageDiscount) = discount(Discount.ofUsage(usage)) - - /** Alias for calling [discount] with `Discount.ofAmount(amount)`. */ - fun discount(amount: AmountDiscount) = discount(Discount.ofAmount(amount)) - - /** - * The `external_customer_id` of the `Customer` to create this invoice for. One of - * `customer_id` and `external_customer_id` are required. - */ - fun externalCustomerId(externalCustomerId: String?) = - externalCustomerId(JsonField.ofNullable(externalCustomerId)) - - /** - * Alias for calling [Builder.externalCustomerId] with - * `externalCustomerId.orElse(null)`. - */ - fun externalCustomerId(externalCustomerId: Optional) = - externalCustomerId(externalCustomerId.getOrNull()) - - /** - * Sets [Builder.externalCustomerId] to an arbitrary JSON value. - * - * You should usually call [Builder.externalCustomerId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun externalCustomerId(externalCustomerId: JsonField) = apply { - this.externalCustomerId = externalCustomerId - } - - /** An optional memo to attach to the invoice. */ - fun memo(memo: String?) = memo(JsonField.ofNullable(memo)) - - /** Alias for calling [Builder.memo] with `memo.orElse(null)`. */ - fun memo(memo: Optional) = memo(memo.getOrNull()) - - /** - * Sets [Builder.memo] to an arbitrary JSON value. - * - * You should usually call [Builder.memo] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun memo(memo: JsonField) = apply { this.memo = memo } - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by - * setting `metadata` to `null`. - */ - fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) - - /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ - fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) - - /** - * Sets [Builder.metadata] to an arbitrary JSON value. - * - * You should usually call [Builder.metadata] with a well-typed [Metadata] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun metadata(metadata: JsonField) = apply { this.metadata = metadata } - - /** - * When true, this invoice will automatically be issued upon creation. When false, the - * resulting invoice will require manual review to issue. Defaulted to false. - */ - fun willAutoIssue(willAutoIssue: Boolean) = willAutoIssue(JsonField.of(willAutoIssue)) - - /** - * Sets [Builder.willAutoIssue] to an arbitrary JSON value. - * - * You should usually call [Builder.willAutoIssue] with a well-typed [Boolean] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun willAutoIssue(willAutoIssue: JsonField) = apply { - this.willAutoIssue = willAutoIssue - } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .currency() - * .invoiceDate() - * .lineItems() - * .netTerms() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body( - checkRequired("currency", currency), - checkRequired("invoiceDate", invoiceDate), - checkRequired("lineItems", lineItems).map { it.toImmutable() }, - checkRequired("netTerms", netTerms), - customerId, - discount, - externalCustomerId, - memo, - metadata, - willAutoIssue, - additionalProperties.toImmutable(), - ) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && currency == other.currency && invoiceDate == other.invoiceDate && lineItems == other.lineItems && netTerms == other.netTerms && customerId == other.customerId && discount == other.discount && externalCustomerId == other.externalCustomerId && memo == other.memo && metadata == other.metadata && willAutoIssue == other.willAutoIssue && additionalProperties == other.additionalProperties /* spotless:on */ + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) } - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(currency, invoiceDate, lineItems, netTerms, customerId, discount, externalCustomerId, memo, metadata, willAutoIssue, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{currency=$currency, invoiceDate=$invoiceDate, lineItems=$lineItems, netTerms=$netTerms, customerId=$customerId, discount=$discount, externalCustomerId=$externalCustomerId, memo=$memo, metadata=$metadata, willAutoIssue=$willAutoIssue, additionalProperties=$additionalProperties}" - } - - fun toBuilder() = Builder().from(this) - - companion object { - /** - * Returns a mutable builder for constructing an instance of [InvoiceCreateParams]. + * Returns an immutable instance of [InvoiceCreateParams]. + * + * Further updates to this [Builder] will not mutate the returned instance. * * The following fields are required: * ```java @@ -779,390 +553,643 @@ private constructor( * .lineItems() * .netTerms() * ``` + * + * @throws IllegalStateException if any required field is unset. */ - @JvmStatic fun builder() = Builder() + fun build(): InvoiceCreateParams = + InvoiceCreateParams( + body.build(), + additionalHeaders.build(), + additionalQueryParams.build(), + ) } - /** A builder for [InvoiceCreateParams]. */ - @NoAutoDetect - class Builder internal constructor() { + @JvmSynthetic internal fun _body(): Body = body - private var body: Body.Builder = Body.builder() - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + override fun _headers(): Headers = additionalHeaders - @JvmSynthetic - internal fun from(invoiceCreateParams: InvoiceCreateParams) = apply { - body = invoiceCreateParams.body.toBuilder() - additionalHeaders = invoiceCreateParams.additionalHeaders.toBuilder() - additionalQueryParams = invoiceCreateParams.additionalQueryParams.toBuilder() - } + override fun _queryParams(): QueryParams = additionalQueryParams - /** - * An ISO 4217 currency string. Must be the same as the customer's currency if it is set. - */ - fun currency(currency: String) = apply { body.currency(currency) } + class Body + private constructor( + private val currency: JsonField, + private val invoiceDate: JsonField, + private val lineItems: JsonField>, + private val netTerms: JsonField, + private val customerId: JsonField, + private val discount: JsonField, + private val externalCustomerId: JsonField, + private val memo: JsonField, + private val metadata: JsonField, + private val willAutoIssue: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("invoice_date") + @ExcludeMissing + invoiceDate: JsonField = JsonMissing.of(), + @JsonProperty("line_items") + @ExcludeMissing + lineItems: JsonField> = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("customer_id") + @ExcludeMissing + customerId: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + @JsonProperty("memo") @ExcludeMissing memo: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("will_auto_issue") + @ExcludeMissing + willAutoIssue: JsonField = JsonMissing.of(), + ) : this( + currency, + invoiceDate, + lineItems, + netTerms, + customerId, + discount, + externalCustomerId, + memo, + metadata, + willAutoIssue, + mutableMapOf(), + ) /** - * Sets [Builder.currency] to an arbitrary JSON value. + * An ISO 4217 currency string. Must be the same as the customer's currency if it is set. * - * You should usually call [Builder.currency] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun currency(currency: JsonField) = apply { body.currency(currency) } + fun currency(): String = currency.getRequired("currency") /** * Optional invoice date to set. Must be in the past, if not set, `invoice_date` is set to * the current time in the customer's timezone. - */ - fun invoiceDate(invoiceDate: OffsetDateTime) = apply { body.invoiceDate(invoiceDate) } - - /** - * Sets [Builder.invoiceDate] to an arbitrary JSON value. * - * You should usually call [Builder.invoiceDate] with a well-typed [OffsetDateTime] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun invoiceDate(invoiceDate: JsonField) = apply { - body.invoiceDate(invoiceDate) - } - - fun lineItems(lineItems: List) = apply { body.lineItems(lineItems) } + fun invoiceDate(): OffsetDateTime = invoiceDate.getRequired("invoice_date") /** - * Sets [Builder.lineItems] to an arbitrary JSON value. - * - * You should usually call [Builder.lineItems] with a well-typed `List` value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun lineItems(lineItems: JsonField>) = apply { body.lineItems(lineItems) } + fun lineItems(): List = lineItems.getRequired("line_items") /** - * Adds a single [LineItem] to [lineItems]. + * Determines the difference between the invoice issue date for subscription invoices as the + * date that they are due. A value of '0' here represents that the invoice is due on issue, + * whereas a value of 30 represents that the customer has 30 days to pay the invoice. * - * @throws IllegalStateException if the field was previously set to a non-list. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun addLineItem(lineItem: LineItem) = apply { body.addLineItem(lineItem) } + fun netTerms(): Long = netTerms.getRequired("net_terms") /** - * Determines the difference between the invoice issue date for subscription invoices as the - * date that they are due. A value of '0' here represents that the invoice is due on issue, - * whereas a value of 30 represents that the customer has 30 days to pay the invoice. + * The id of the `Customer` to create this invoice for. One of `customer_id` and + * `external_customer_id` are required. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun netTerms(netTerms: Long) = apply { body.netTerms(netTerms) } + fun customerId(): Optional = + Optional.ofNullable(customerId.getNullable("customer_id")) /** - * Sets [Builder.netTerms] to an arbitrary JSON value. + * An optional discount to attach to the invoice. * - * You should usually call [Builder.netTerms] with a well-typed [Long] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun netTerms(netTerms: JsonField) = apply { body.netTerms(netTerms) } + fun discount(): Optional = Optional.ofNullable(discount.getNullable("discount")) /** - * The id of the `Customer` to create this invoice for. One of `customer_id` and - * `external_customer_id` are required. + * The `external_customer_id` of the `Customer` to create this invoice for. One of + * `customer_id` and `external_customer_id` are required. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun customerId(customerId: String?) = apply { body.customerId(customerId) } - - /** Alias for calling [Builder.customerId] with `customerId.orElse(null)`. */ - fun customerId(customerId: Optional) = customerId(customerId.getOrNull()) + fun externalCustomerId(): Optional = + Optional.ofNullable(externalCustomerId.getNullable("external_customer_id")) /** - * Sets [Builder.customerId] to an arbitrary JSON value. + * An optional memo to attach to the invoice. * - * You should usually call [Builder.customerId] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun customerId(customerId: JsonField) = apply { body.customerId(customerId) } - - /** An optional discount to attach to the invoice. */ - fun discount(discount: Discount?) = apply { body.discount(discount) } - - /** Alias for calling [Builder.discount] with `discount.orElse(null)`. */ - fun discount(discount: Optional) = discount(discount.getOrNull()) + fun memo(): Optional = Optional.ofNullable(memo.getNullable("memo")) /** - * Sets [Builder.discount] to an arbitrary JSON value. + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. * - * You should usually call [Builder.discount] with a well-typed [Discount] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun discount(discount: JsonField) = apply { body.discount(discount) } - - /** Alias for calling [discount] with `Discount.ofPercentage(percentage)`. */ - fun discount(percentage: PercentageDiscount) = apply { body.discount(percentage) } - - /** Alias for calling [discount] with `Discount.ofTrial(trial)`. */ - fun discount(trial: TrialDiscount) = apply { body.discount(trial) } + fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) /** - * Alias for calling [discount] with the following: - * ```java - * TrialDiscount.builder() - * .discountType(TrialDiscount.DiscountType.TRIAL) - * .appliesToPriceIds(appliesToPriceIds) - * .build() - * ``` + * When true, this invoice will automatically be issued upon creation. When false, the + * resulting invoice will require manual review to issue. Defaulted to false. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun trialDiscount(appliesToPriceIds: List) = apply { - body.trialDiscount(appliesToPriceIds) - } - - /** Alias for calling [discount] with `Discount.ofUsage(usage)`. */ - fun discount(usage: UsageDiscount) = apply { body.discount(usage) } - - /** Alias for calling [discount] with `Discount.ofAmount(amount)`. */ - fun discount(amount: AmountDiscount) = apply { body.discount(amount) } + fun willAutoIssue(): Optional = + Optional.ofNullable(willAutoIssue.getNullable("will_auto_issue")) /** - * The `external_customer_id` of the `Customer` to create this invoice for. One of - * `customer_id` and `external_customer_id` are required. + * Returns the raw JSON value of [currency]. + * + * Unlike [currency], this method doesn't throw if the JSON field has an unexpected type. */ - fun externalCustomerId(externalCustomerId: String?) = apply { - body.externalCustomerId(externalCustomerId) - } + @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency /** - * Alias for calling [Builder.externalCustomerId] with `externalCustomerId.orElse(null)`. + * Returns the raw JSON value of [invoiceDate]. + * + * Unlike [invoiceDate], this method doesn't throw if the JSON field has an unexpected type. */ - fun externalCustomerId(externalCustomerId: Optional) = - externalCustomerId(externalCustomerId.getOrNull()) + @JsonProperty("invoice_date") + @ExcludeMissing + fun _invoiceDate(): JsonField = invoiceDate /** - * Sets [Builder.externalCustomerId] to an arbitrary JSON value. + * Returns the raw JSON value of [lineItems]. * - * You should usually call [Builder.externalCustomerId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [lineItems], this method doesn't throw if the JSON field has an unexpected type. */ - fun externalCustomerId(externalCustomerId: JsonField) = apply { - body.externalCustomerId(externalCustomerId) - } - - /** An optional memo to attach to the invoice. */ - fun memo(memo: String?) = apply { body.memo(memo) } + @JsonProperty("line_items") + @ExcludeMissing + fun _lineItems(): JsonField> = lineItems - /** Alias for calling [Builder.memo] with `memo.orElse(null)`. */ - fun memo(memo: Optional) = memo(memo.getOrNull()) + /** + * Returns the raw JSON value of [netTerms]. + * + * Unlike [netTerms], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("net_terms") @ExcludeMissing fun _netTerms(): JsonField = netTerms /** - * Sets [Builder.memo] to an arbitrary JSON value. + * Returns the raw JSON value of [customerId]. * - * You should usually call [Builder.memo] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. + * Unlike [customerId], this method doesn't throw if the JSON field has an unexpected type. */ - fun memo(memo: JsonField) = apply { body.memo(memo) } + @JsonProperty("customer_id") + @ExcludeMissing + fun _customerId(): JsonField = customerId /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. + * Returns the raw JSON value of [discount]. + * + * Unlike [discount], this method doesn't throw if the JSON field has an unexpected type. */ - fun metadata(metadata: Metadata?) = apply { body.metadata(metadata) } + @JsonProperty("discount") @ExcludeMissing fun _discount(): JsonField = discount - /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ - fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) + /** + * Returns the raw JSON value of [externalCustomerId]. + * + * Unlike [externalCustomerId], this method doesn't throw if the JSON field has an + * unexpected type. + */ + @JsonProperty("external_customer_id") + @ExcludeMissing + fun _externalCustomerId(): JsonField = externalCustomerId /** - * Sets [Builder.metadata] to an arbitrary JSON value. + * Returns the raw JSON value of [memo]. * - * You should usually call [Builder.metadata] with a well-typed [Metadata] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. + * Unlike [memo], this method doesn't throw if the JSON field has an unexpected type. */ - fun metadata(metadata: JsonField) = apply { body.metadata(metadata) } + @JsonProperty("memo") @ExcludeMissing fun _memo(): JsonField = memo /** - * When true, this invoice will automatically be issued upon creation. When false, the - * resulting invoice will require manual review to issue. Defaulted to false. + * Returns the raw JSON value of [metadata]. + * + * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. */ - fun willAutoIssue(willAutoIssue: Boolean) = apply { body.willAutoIssue(willAutoIssue) } + @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata /** - * Sets [Builder.willAutoIssue] to an arbitrary JSON value. + * Returns the raw JSON value of [willAutoIssue]. * - * You should usually call [Builder.willAutoIssue] with a well-typed [Boolean] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [willAutoIssue], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun willAutoIssue(willAutoIssue: JsonField) = apply { - body.willAutoIssue(willAutoIssue) - } + @JsonProperty("will_auto_issue") + @ExcludeMissing + fun _willAutoIssue(): JsonField = willAutoIssue - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { - body.additionalProperties(additionalBodyProperties) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } - fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - body.putAdditionalProperty(key, value) + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .currency() + * .invoiceDate() + * .lineItems() + * .netTerms() + * ``` + */ + @JvmStatic fun builder() = Builder() } - fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = - apply { - body.putAllAdditionalProperties(additionalBodyProperties) + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var currency: JsonField? = null + private var invoiceDate: JsonField? = null + private var lineItems: JsonField>? = null + private var netTerms: JsonField? = null + private var customerId: JsonField = JsonMissing.of() + private var discount: JsonField = JsonMissing.of() + private var externalCustomerId: JsonField = JsonMissing.of() + private var memo: JsonField = JsonMissing.of() + private var metadata: JsonField = JsonMissing.of() + private var willAutoIssue: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + currency = body.currency + invoiceDate = body.invoiceDate + lineItems = body.lineItems.map { it.toMutableList() } + netTerms = body.netTerms + customerId = body.customerId + discount = body.discount + externalCustomerId = body.externalCustomerId + memo = body.memo + metadata = body.metadata + willAutoIssue = body.willAutoIssue + additionalProperties = body.additionalProperties.toMutableMap() } - fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + /** + * An ISO 4217 currency string. Must be the same as the customer's currency if it is + * set. + */ + fun currency(currency: String) = currency(JsonField.of(currency)) - fun removeAllAdditionalBodyProperties(keys: Set) = apply { - body.removeAllAdditionalProperties(keys) - } + /** + * Sets [Builder.currency] to an arbitrary JSON value. + * + * You should usually call [Builder.currency] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun currency(currency: JsonField) = apply { this.currency = currency } - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** + * Optional invoice date to set. Must be in the past, if not set, `invoice_date` is set + * to the current time in the customer's timezone. + */ + fun invoiceDate(invoiceDate: OffsetDateTime) = invoiceDate(JsonField.of(invoiceDate)) - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** + * Sets [Builder.invoiceDate] to an arbitrary JSON value. + * + * You should usually call [Builder.invoiceDate] with a well-typed [OffsetDateTime] + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + fun invoiceDate(invoiceDate: JsonField) = apply { + this.invoiceDate = invoiceDate + } - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } + fun lineItems(lineItems: List) = lineItems(JsonField.of(lineItems)) - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } + /** + * Sets [Builder.lineItems] to an arbitrary JSON value. + * + * You should usually call [Builder.lineItems] with a well-typed `List` value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun lineItems(lineItems: JsonField>) = apply { + this.lineItems = lineItems.map { it.toMutableList() } + } - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** + * Adds a single [LineItem] to [lineItems]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addLineItem(lineItem: LineItem) = apply { + lineItems = + (lineItems ?: JsonField.of(mutableListOf())).also { + checkKnown("lineItems", it).add(lineItem) + } + } - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** + * Determines the difference between the invoice issue date for subscription invoices as + * the date that they are due. A value of '0' here represents that the invoice is due on + * issue, whereas a value of 30 represents that the customer has 30 days to pay the + * invoice. + */ + fun netTerms(netTerms: Long) = netTerms(JsonField.of(netTerms)) - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } + /** + * Sets [Builder.netTerms] to an arbitrary JSON value. + * + * You should usually call [Builder.netTerms] with a well-typed [Long] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun netTerms(netTerms: JsonField) = apply { this.netTerms = netTerms } - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } + /** + * The id of the `Customer` to create this invoice for. One of `customer_id` and + * `external_customer_id` are required. + */ + fun customerId(customerId: String?) = customerId(JsonField.ofNullable(customerId)) - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** Alias for calling [Builder.customerId] with `customerId.orElse(null)`. */ + fun customerId(customerId: Optional) = customerId(customerId.getOrNull()) + + /** + * Sets [Builder.customerId] to an arbitrary JSON value. + * + * You should usually call [Builder.customerId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun customerId(customerId: JsonField) = apply { this.customerId = customerId } + + /** An optional discount to attach to the invoice. */ + fun discount(discount: Discount?) = discount(JsonField.ofNullable(discount)) + + /** Alias for calling [Builder.discount] with `discount.orElse(null)`. */ + fun discount(discount: Optional) = discount(discount.getOrNull()) + + /** + * Sets [Builder.discount] to an arbitrary JSON value. + * + * You should usually call [Builder.discount] with a well-typed [Discount] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun discount(discount: JsonField) = apply { this.discount = discount } + + /** Alias for calling [discount] with `Discount.ofPercentage(percentage)`. */ + fun discount(percentage: PercentageDiscount) = + discount(Discount.ofPercentage(percentage)) + + /** Alias for calling [discount] with `Discount.ofTrial(trial)`. */ + fun discount(trial: TrialDiscount) = discount(Discount.ofTrial(trial)) + + /** + * Alias for calling [discount] with the following: + * ```java + * TrialDiscount.builder() + * .discountType(TrialDiscount.DiscountType.TRIAL) + * .appliesToPriceIds(appliesToPriceIds) + * .build() + * ``` + */ + fun trialDiscount(appliesToPriceIds: List) = + discount( + TrialDiscount.builder() + .discountType(TrialDiscount.DiscountType.TRIAL) + .appliesToPriceIds(appliesToPriceIds) + .build() + ) + + /** Alias for calling [discount] with `Discount.ofUsage(usage)`. */ + fun discount(usage: UsageDiscount) = discount(Discount.ofUsage(usage)) + + /** Alias for calling [discount] with `Discount.ofAmount(amount)`. */ + fun discount(amount: AmountDiscount) = discount(Discount.ofAmount(amount)) + + /** + * The `external_customer_id` of the `Customer` to create this invoice for. One of + * `customer_id` and `external_customer_id` are required. + */ + fun externalCustomerId(externalCustomerId: String?) = + externalCustomerId(JsonField.ofNullable(externalCustomerId)) + + /** + * Alias for calling [Builder.externalCustomerId] with + * `externalCustomerId.orElse(null)`. + */ + fun externalCustomerId(externalCustomerId: Optional) = + externalCustomerId(externalCustomerId.getOrNull()) + + /** + * Sets [Builder.externalCustomerId] to an arbitrary JSON value. + * + * You should usually call [Builder.externalCustomerId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun externalCustomerId(externalCustomerId: JsonField) = apply { + this.externalCustomerId = externalCustomerId + } + + /** An optional memo to attach to the invoice. */ + fun memo(memo: String?) = memo(JsonField.ofNullable(memo)) + + /** Alias for calling [Builder.memo] with `memo.orElse(null)`. */ + fun memo(memo: Optional) = memo(memo.getOrNull()) + + /** + * Sets [Builder.memo] to an arbitrary JSON value. + * + * You should usually call [Builder.memo] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun memo(memo: JsonField) = apply { this.memo = memo } + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by + * setting `metadata` to `null`. + */ + fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) + + /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ + fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) + + /** + * Sets [Builder.metadata] to an arbitrary JSON value. + * + * You should usually call [Builder.metadata] with a well-typed [Metadata] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun metadata(metadata: JsonField) = apply { this.metadata = metadata } + + /** + * When true, this invoice will automatically be issued upon creation. When false, the + * resulting invoice will require manual review to issue. Defaulted to false. + */ + fun willAutoIssue(willAutoIssue: Boolean) = willAutoIssue(JsonField.of(willAutoIssue)) - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** + * Sets [Builder.willAutoIssue] to an arbitrary JSON value. + * + * You should usually call [Builder.willAutoIssue] with a well-typed [Boolean] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun willAutoIssue(willAutoIssue: JsonField) = apply { + this.willAutoIssue = willAutoIssue + } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .currency() + * .invoiceDate() + * .lineItems() + * .netTerms() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body( + checkRequired("currency", currency), + checkRequired("invoiceDate", invoiceDate), + checkRequired("lineItems", lineItems).map { it.toImmutable() }, + checkRequired("netTerms", netTerms), + customerId, + discount, + externalCustomerId, + memo, + metadata, + willAutoIssue, + additionalProperties.toMutableMap(), + ) } - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } + private var validated: Boolean = false - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) + fun validate(): Body = apply { + if (validated) { + return@apply } - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) + currency() + invoiceDate() + lineItems().forEach { it.validate() } + netTerms() + customerId() + discount().ifPresent { it.validate() } + externalCustomerId() + memo() + metadata().ifPresent { it.validate() } + willAutoIssue() + validated = true } - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + return /* spotless:off */ other is Body && currency == other.currency && invoiceDate == other.invoiceDate && lineItems == other.lineItems && netTerms == other.netTerms && customerId == other.customerId && discount == other.discount && externalCustomerId == other.externalCustomerId && memo == other.memo && metadata == other.metadata && willAutoIssue == other.willAutoIssue && additionalProperties == other.additionalProperties /* spotless:on */ } - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(currency, invoiceDate, lineItems, netTerms, customerId, discount, externalCustomerId, memo, metadata, willAutoIssue, additionalProperties) } + /* spotless:on */ - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) - } + override fun hashCode(): Int = hashCode - /** - * Returns an immutable instance of [InvoiceCreateParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .currency() - * .invoiceDate() - * .lineItems() - * .netTerms() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): InvoiceCreateParams = - InvoiceCreateParams( - body.build(), - additionalHeaders.build(), - additionalQueryParams.build(), - ) + override fun toString() = + "Body{currency=$currency, invoiceDate=$invoiceDate, lineItems=$lineItems, netTerms=$netTerms, customerId=$customerId, discount=$discount, externalCustomerId=$externalCustomerId, memo=$memo, metadata=$metadata, willAutoIssue=$willAutoIssue, additionalProperties=$additionalProperties}" } - @NoAutoDetect class LineItem - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("unit_config") - @ExcludeMissing - private val unitConfig: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val quantity: JsonField, + private val startDate: JsonField, + private val unitConfig: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("item_id") @ExcludeMissing itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("unit_config") + @ExcludeMissing + unitConfig: JsonField = JsonMissing.of(), + ) : this(endDate, itemId, modelType, name, quantity, startDate, unitConfig, mutableMapOf()) + /** * A date string to specify the line item's end date in the customer's timezone. * @@ -1268,26 +1295,15 @@ private constructor( @ExcludeMissing fun _unitConfig(): JsonField = unitConfig + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): LineItem = apply { - if (validated) { - return@apply - } - - endDate() - itemId() - modelType() - name() - quantity() - startDate() - unitConfig().validate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1463,10 +1479,27 @@ private constructor( checkRequired("quantity", quantity), checkRequired("startDate", startDate), checkRequired("unitConfig", unitConfig), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): LineItem = apply { + if (validated) { + return@apply + } + + endDate() + itemId() + modelType() + name() + quantity() + startDate() + unitConfig().validate() + validated = true + } + class ModelType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -1563,17 +1596,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitConfig - @JsonCreator private constructor( - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of() + ) : this(unitAmount, mutableMapOf()) + /** * Rate per unit of usage * @@ -1593,20 +1628,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitConfig = apply { - if (validated) { - return@apply - } - - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1686,10 +1716,21 @@ private constructor( fun build(): UnitConfig = UnitConfig( checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UnitConfig = apply { + if (validated) { + return@apply + } + + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -1731,27 +1772,20 @@ private constructor( * the value to `null`, and the entire metadata mapping can be cleared by setting `metadata` to * `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1795,7 +1829,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchParams.kt index 7432d5bf..4b2fee35 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -23,16 +22,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> invoiceId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - fun toBuilder() = Builder().from(this) companion object { @@ -49,7 +38,6 @@ private constructor( } /** A builder for [InvoiceFetchParams]. */ - @NoAutoDetect class Builder internal constructor() { private var invoiceId: String? = null @@ -183,6 +171,16 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> invoiceId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchUpcomingParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchUpcomingParams.kt index 289ed1df..00d04ea4 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchUpcomingParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchUpcomingParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -26,16 +25,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - put("subscription_id", subscriptionId) - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -52,7 +41,6 @@ private constructor( } /** A builder for [InvoiceFetchUpcomingParams]. */ - @NoAutoDetect class Builder internal constructor() { private var subscriptionId: String? = null @@ -186,6 +174,16 @@ private constructor( ) } + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + put("subscription_id", subscriptionId) + putAll(additionalQueryParams) + } + .build() + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchUpcomingResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchUpcomingResponse.kt index 3a8e5e82..154766fd 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchUpcomingResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchUpcomingResponse.kt @@ -20,141 +20,209 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class InvoiceFetchUpcomingResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount_due") - @ExcludeMissing - private val amountDue: JsonField = JsonMissing.of(), - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("billing_address") - @ExcludeMissing - private val billingAddress: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_notes") - @ExcludeMissing - private val creditNotes: JsonField> = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("customer_balance_transactions") - @ExcludeMissing - private val customerBalanceTransactions: JsonField> = - JsonMissing.of(), - @JsonProperty("customer_tax_id") - @ExcludeMissing - private val customerTaxId: JsonField = JsonMissing.of(), - @JsonProperty("discount") @ExcludeMissing private val discount: JsonValue = JsonMissing.of(), - @JsonProperty("discounts") - @ExcludeMissing - private val discounts: JsonField> = JsonMissing.of(), - @JsonProperty("due_date") - @ExcludeMissing - private val dueDate: JsonField = JsonMissing.of(), - @JsonProperty("eligible_to_issue_at") - @ExcludeMissing - private val eligibleToIssueAt: JsonField = JsonMissing.of(), - @JsonProperty("hosted_invoice_url") - @ExcludeMissing - private val hostedInvoiceUrl: JsonField = JsonMissing.of(), - @JsonProperty("invoice_number") - @ExcludeMissing - private val invoiceNumber: JsonField = JsonMissing.of(), - @JsonProperty("invoice_pdf") - @ExcludeMissing - private val invoicePdf: JsonField = JsonMissing.of(), - @JsonProperty("invoice_source") - @ExcludeMissing - private val invoiceSource: JsonField = JsonMissing.of(), - @JsonProperty("issue_failed_at") - @ExcludeMissing - private val issueFailedAt: JsonField = JsonMissing.of(), - @JsonProperty("issued_at") - @ExcludeMissing - private val issuedAt: JsonField = JsonMissing.of(), - @JsonProperty("line_items") - @ExcludeMissing - private val lineItems: JsonField> = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("memo") @ExcludeMissing private val memo: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("paid_at") - @ExcludeMissing - private val paidAt: JsonField = JsonMissing.of(), - @JsonProperty("payment_attempts") - @ExcludeMissing - private val paymentAttempts: JsonField> = JsonMissing.of(), - @JsonProperty("payment_failed_at") - @ExcludeMissing - private val paymentFailedAt: JsonField = JsonMissing.of(), - @JsonProperty("payment_started_at") - @ExcludeMissing - private val paymentStartedAt: JsonField = JsonMissing.of(), - @JsonProperty("scheduled_issue_at") - @ExcludeMissing - private val scheduledIssueAt: JsonField = JsonMissing.of(), - @JsonProperty("shipping_address") - @ExcludeMissing - private val shippingAddress: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("subscription") - @ExcludeMissing - private val subscription: JsonField = JsonMissing.of(), - @JsonProperty("subtotal") - @ExcludeMissing - private val subtotal: JsonField = JsonMissing.of(), - @JsonProperty("sync_failed_at") - @ExcludeMissing - private val syncFailedAt: JsonField = JsonMissing.of(), - @JsonProperty("target_date") - @ExcludeMissing - private val targetDate: JsonField = JsonMissing.of(), - @JsonProperty("total") @ExcludeMissing private val total: JsonField = JsonMissing.of(), - @JsonProperty("voided_at") - @ExcludeMissing - private val voidedAt: JsonField = JsonMissing.of(), - @JsonProperty("will_auto_issue") - @ExcludeMissing - private val willAutoIssue: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amountDue: JsonField, + private val autoCollection: JsonField, + private val billingAddress: JsonField, + private val createdAt: JsonField, + private val creditNotes: JsonField>, + private val currency: JsonField, + private val customer: JsonField, + private val customerBalanceTransactions: JsonField>, + private val customerTaxId: JsonField, + private val discount: JsonValue, + private val discounts: JsonField>, + private val dueDate: JsonField, + private val eligibleToIssueAt: JsonField, + private val hostedInvoiceUrl: JsonField, + private val invoiceNumber: JsonField, + private val invoicePdf: JsonField, + private val invoiceSource: JsonField, + private val issueFailedAt: JsonField, + private val issuedAt: JsonField, + private val lineItems: JsonField>, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val memo: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val paidAt: JsonField, + private val paymentAttempts: JsonField>, + private val paymentFailedAt: JsonField, + private val paymentStartedAt: JsonField, + private val scheduledIssueAt: JsonField, + private val shippingAddress: JsonField, + private val status: JsonField, + private val subscription: JsonField, + private val subtotal: JsonField, + private val syncFailedAt: JsonField, + private val targetDate: JsonField, + private val total: JsonField, + private val voidedAt: JsonField, + private val willAutoIssue: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount_due") @ExcludeMissing amountDue: JsonField = JsonMissing.of(), + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("billing_address") + @ExcludeMissing + billingAddress: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_notes") + @ExcludeMissing + creditNotes: JsonField> = JsonMissing.of(), + @JsonProperty("currency") @ExcludeMissing currency: JsonField = JsonMissing.of(), + @JsonProperty("customer") @ExcludeMissing customer: JsonField = JsonMissing.of(), + @JsonProperty("customer_balance_transactions") + @ExcludeMissing + customerBalanceTransactions: JsonField> = JsonMissing.of(), + @JsonProperty("customer_tax_id") + @ExcludeMissing + customerTaxId: JsonField = JsonMissing.of(), + @JsonProperty("discount") @ExcludeMissing discount: JsonValue = JsonMissing.of(), + @JsonProperty("discounts") + @ExcludeMissing + discounts: JsonField> = JsonMissing.of(), + @JsonProperty("due_date") + @ExcludeMissing + dueDate: JsonField = JsonMissing.of(), + @JsonProperty("eligible_to_issue_at") + @ExcludeMissing + eligibleToIssueAt: JsonField = JsonMissing.of(), + @JsonProperty("hosted_invoice_url") + @ExcludeMissing + hostedInvoiceUrl: JsonField = JsonMissing.of(), + @JsonProperty("invoice_number") + @ExcludeMissing + invoiceNumber: JsonField = JsonMissing.of(), + @JsonProperty("invoice_pdf") + @ExcludeMissing + invoicePdf: JsonField = JsonMissing.of(), + @JsonProperty("invoice_source") + @ExcludeMissing + invoiceSource: JsonField = JsonMissing.of(), + @JsonProperty("issue_failed_at") + @ExcludeMissing + issueFailedAt: JsonField = JsonMissing.of(), + @JsonProperty("issued_at") + @ExcludeMissing + issuedAt: JsonField = JsonMissing.of(), + @JsonProperty("line_items") + @ExcludeMissing + lineItems: JsonField> = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("memo") @ExcludeMissing memo: JsonField = JsonMissing.of(), + @JsonProperty("metadata") @ExcludeMissing metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("paid_at") + @ExcludeMissing + paidAt: JsonField = JsonMissing.of(), + @JsonProperty("payment_attempts") + @ExcludeMissing + paymentAttempts: JsonField> = JsonMissing.of(), + @JsonProperty("payment_failed_at") + @ExcludeMissing + paymentFailedAt: JsonField = JsonMissing.of(), + @JsonProperty("payment_started_at") + @ExcludeMissing + paymentStartedAt: JsonField = JsonMissing.of(), + @JsonProperty("scheduled_issue_at") + @ExcludeMissing + scheduledIssueAt: JsonField = JsonMissing.of(), + @JsonProperty("shipping_address") + @ExcludeMissing + shippingAddress: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + @JsonProperty("subscription") + @ExcludeMissing + subscription: JsonField = JsonMissing.of(), + @JsonProperty("subtotal") @ExcludeMissing subtotal: JsonField = JsonMissing.of(), + @JsonProperty("sync_failed_at") + @ExcludeMissing + syncFailedAt: JsonField = JsonMissing.of(), + @JsonProperty("target_date") + @ExcludeMissing + targetDate: JsonField = JsonMissing.of(), + @JsonProperty("total") @ExcludeMissing total: JsonField = JsonMissing.of(), + @JsonProperty("voided_at") + @ExcludeMissing + voidedAt: JsonField = JsonMissing.of(), + @JsonProperty("will_auto_issue") + @ExcludeMissing + willAutoIssue: JsonField = JsonMissing.of(), + ) : this( + id, + amountDue, + autoCollection, + billingAddress, + createdAt, + creditNotes, + currency, + customer, + customerBalanceTransactions, + customerTaxId, + discount, + discounts, + dueDate, + eligibleToIssueAt, + hostedInvoiceUrl, + invoiceNumber, + invoicePdf, + invoiceSource, + issueFailedAt, + issuedAt, + lineItems, + maximum, + maximumAmount, + memo, + metadata, + minimum, + minimumAmount, + paidAt, + paymentAttempts, + paymentFailedAt, + paymentStartedAt, + scheduledIssueAt, + shippingAddress, + status, + subscription, + subtotal, + syncFailedAt, + targetDate, + total, + voidedAt, + willAutoIssue, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -923,59 +991,15 @@ private constructor( @ExcludeMissing fun _willAutoIssue(): JsonField = willAutoIssue + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoiceFetchUpcomingResponse = apply { - if (validated) { - return@apply - } - - id() - amountDue() - autoCollection().validate() - billingAddress().ifPresent { it.validate() } - createdAt() - creditNotes().forEach { it.validate() } - currency() - customer().validate() - customerBalanceTransactions().forEach { it.validate() } - customerTaxId().ifPresent { it.validate() } - discounts().forEach { it.validate() } - dueDate() - eligibleToIssueAt() - hostedInvoiceUrl() - invoiceNumber() - invoicePdf() - invoiceSource() - issueFailedAt() - issuedAt() - lineItems().forEach { it.validate() } - maximum().ifPresent { it.validate() } - maximumAmount() - memo() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - paidAt() - paymentAttempts().forEach { it.validate() } - paymentFailedAt() - paymentStartedAt() - scheduledIssueAt() - shippingAddress().ifPresent { it.validate() } - status() - subscription().ifPresent { it.validate() } - subtotal() - syncFailedAt() - targetDate() - total() - voidedAt() - willAutoIssue() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2093,30 +2117,83 @@ private constructor( checkRequired("total", total), checkRequired("voidedAt", voidedAt), checkRequired("willAutoIssue", willAutoIssue), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): InvoiceFetchUpcomingResponse = apply { + if (validated) { + return@apply + } + + id() + amountDue() + autoCollection().validate() + billingAddress().ifPresent { it.validate() } + createdAt() + creditNotes().forEach { it.validate() } + currency() + customer().validate() + customerBalanceTransactions().forEach { it.validate() } + customerTaxId().ifPresent { it.validate() } + discounts().forEach { it.validate() } + dueDate() + eligibleToIssueAt() + hostedInvoiceUrl() + invoiceNumber() + invoicePdf() + invoiceSource() + issueFailedAt() + issuedAt() + lineItems().forEach { it.validate() } + maximum().ifPresent { it.validate() } + maximumAmount() + memo() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + paidAt() + paymentAttempts().forEach { it.validate() } + paymentFailedAt() + paymentStartedAt() + scheduledIssueAt() + shippingAddress().ifPresent { it.validate() } + status() + subscription().ifPresent { it.validate() } + subtotal() + syncFailedAt() + targetDate() + total() + voidedAt() + willAutoIssue() + validated = true + } + class AutoCollection - @JsonCreator private constructor( - @JsonProperty("enabled") - @ExcludeMissing - private val enabled: JsonField = JsonMissing.of(), - @JsonProperty("next_attempt_at") - @ExcludeMissing - private val nextAttemptAt: JsonField = JsonMissing.of(), - @JsonProperty("num_attempts") - @ExcludeMissing - private val numAttempts: JsonField = JsonMissing.of(), - @JsonProperty("previously_attempted_at") - @ExcludeMissing - private val previouslyAttemptedAt: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val enabled: JsonField, + private val nextAttemptAt: JsonField, + private val numAttempts: JsonField, + private val previouslyAttemptedAt: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("enabled") @ExcludeMissing enabled: JsonField = JsonMissing.of(), + @JsonProperty("next_attempt_at") + @ExcludeMissing + nextAttemptAt: JsonField = JsonMissing.of(), + @JsonProperty("num_attempts") + @ExcludeMissing + numAttempts: JsonField = JsonMissing.of(), + @JsonProperty("previously_attempted_at") + @ExcludeMissing + previouslyAttemptedAt: JsonField = JsonMissing.of(), + ) : this(enabled, nextAttemptAt, numAttempts, previouslyAttemptedAt, mutableMapOf()) + /** * True only if auto-collection is enabled for this invoice. * @@ -2195,23 +2272,15 @@ private constructor( @ExcludeMissing fun _previouslyAttemptedAt(): JsonField = previouslyAttemptedAt + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AutoCollection = apply { - if (validated) { - return@apply - } - - enabled() - nextAttemptAt() - numAttempts() - previouslyAttemptedAt() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2385,10 +2454,24 @@ private constructor( checkRequired("nextAttemptAt", nextAttemptAt), checkRequired("numAttempts", numAttempts), checkRequired("previouslyAttemptedAt", previouslyAttemptedAt), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AutoCollection = apply { + if (validated) { + return@apply + } + + enabled() + nextAttemptAt() + numAttempts() + previouslyAttemptedAt() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2407,33 +2490,30 @@ private constructor( "AutoCollection{enabled=$enabled, nextAttemptAt=$nextAttemptAt, numAttempts=$numAttempts, previouslyAttemptedAt=$previouslyAttemptedAt, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingAddress - @JsonCreator private constructor( - @JsonProperty("city") - @ExcludeMissing - private val city: JsonField = JsonMissing.of(), - @JsonProperty("country") - @ExcludeMissing - private val country: JsonField = JsonMissing.of(), - @JsonProperty("line1") - @ExcludeMissing - private val line1: JsonField = JsonMissing.of(), - @JsonProperty("line2") - @ExcludeMissing - private val line2: JsonField = JsonMissing.of(), - @JsonProperty("postal_code") - @ExcludeMissing - private val postalCode: JsonField = JsonMissing.of(), - @JsonProperty("state") - @ExcludeMissing - private val state: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val city: JsonField, + private val country: JsonField, + private val line1: JsonField, + private val line2: JsonField, + private val postalCode: JsonField, + private val state: JsonField, + private val additionalProperties: MutableMap, ) { - /** + @JsonCreator + private constructor( + @JsonProperty("city") @ExcludeMissing city: JsonField = JsonMissing.of(), + @JsonProperty("country") @ExcludeMissing country: JsonField = JsonMissing.of(), + @JsonProperty("line1") @ExcludeMissing line1: JsonField = JsonMissing.of(), + @JsonProperty("line2") @ExcludeMissing line2: JsonField = JsonMissing.of(), + @JsonProperty("postal_code") + @ExcludeMissing + postalCode: JsonField = JsonMissing.of(), + @JsonProperty("state") @ExcludeMissing state: JsonField = JsonMissing.of(), + ) : this(city, country, line1, line2, postalCode, state, mutableMapOf()) + + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). */ @@ -2514,25 +2594,15 @@ private constructor( */ @JsonProperty("state") @ExcludeMissing fun _state(): JsonField = state + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingAddress = apply { - if (validated) { - return@apply - } - - city() - country() - line1() - line2() - postalCode() - state() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2704,10 +2774,26 @@ private constructor( checkRequired("line2", line2), checkRequired("postalCode", postalCode), checkRequired("state", state), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingAddress = apply { + if (validated) { + return@apply + } + + city() + country() + line1() + line2() + postalCode() + state() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2726,33 +2812,33 @@ private constructor( "BillingAddress{city=$city, country=$country, line1=$line1, line2=$line2, postalCode=$postalCode, state=$state, additionalProperties=$additionalProperties}" } - @NoAutoDetect class CreditNote - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("credit_note_number") - @ExcludeMissing - private val creditNoteNumber: JsonField = JsonMissing.of(), - @JsonProperty("memo") - @ExcludeMissing - private val memo: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonProperty("total") - @ExcludeMissing - private val total: JsonField = JsonMissing.of(), - @JsonProperty("type") - @ExcludeMissing - private val type: JsonField = JsonMissing.of(), - @JsonProperty("voided_at") - @ExcludeMissing - private val voidedAt: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val creditNoteNumber: JsonField, + private val memo: JsonField, + private val reason: JsonField, + private val total: JsonField, + private val type: JsonField, + private val voidedAt: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("credit_note_number") + @ExcludeMissing + creditNoteNumber: JsonField = JsonMissing.of(), + @JsonProperty("memo") @ExcludeMissing memo: JsonField = JsonMissing.of(), + @JsonProperty("reason") @ExcludeMissing reason: JsonField = JsonMissing.of(), + @JsonProperty("total") @ExcludeMissing total: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + @JsonProperty("voided_at") + @ExcludeMissing + voidedAt: JsonField = JsonMissing.of(), + ) : this(id, creditNoteNumber, memo, reason, total, type, voidedAt, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -2855,26 +2941,15 @@ private constructor( @ExcludeMissing fun _voidedAt(): JsonField = voidedAt + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditNote = apply { - if (validated) { - return@apply - } - - id() - creditNoteNumber() - memo() - reason() - total() - type() - voidedAt() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3058,10 +3133,27 @@ private constructor( checkRequired("total", total), checkRequired("type", type), checkRequired("voidedAt", voidedAt), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditNote = apply { + if (validated) { + return@apply + } + + id() + creditNoteNumber() + memo() + reason() + total() + type() + voidedAt() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -3080,18 +3172,21 @@ private constructor( "CreditNote{id=$id, creditNoteNumber=$creditNoteNumber, memo=$memo, reason=$reason, total=$total, type=$type, voidedAt=$voidedAt, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Customer - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalCustomerId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + ) : this(id, externalCustomerId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -3122,21 +3217,15 @@ private constructor( @ExcludeMissing fun _externalCustomerId(): JsonField = externalCustomerId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Customer = apply { - if (validated) { - return@apply - } - - id() - externalCustomerId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3236,10 +3325,22 @@ private constructor( Customer( checkRequired("id", id), checkRequired("externalCustomerId", externalCustomerId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Customer = apply { + if (validated) { + return@apply + } + + id() + externalCustomerId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -3258,40 +3359,57 @@ private constructor( "Customer{id=$id, externalCustomerId=$externalCustomerId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class CustomerBalanceTransaction - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("action") - @ExcludeMissing - private val action: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_note") - @ExcludeMissing - private val creditNote: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("ending_balance") - @ExcludeMissing - private val endingBalance: JsonField = JsonMissing.of(), - @JsonProperty("invoice") - @ExcludeMissing - private val invoice: JsonField = JsonMissing.of(), - @JsonProperty("starting_balance") - @ExcludeMissing - private val startingBalance: JsonField = JsonMissing.of(), - @JsonProperty("type") @ExcludeMissing private val type: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val action: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val creditNote: JsonField, + private val description: JsonField, + private val endingBalance: JsonField, + private val invoice: JsonField, + private val startingBalance: JsonField, + private val type: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("action") @ExcludeMissing action: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_note") + @ExcludeMissing + creditNote: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("ending_balance") + @ExcludeMissing + endingBalance: JsonField = JsonMissing.of(), + @JsonProperty("invoice") @ExcludeMissing invoice: JsonField = JsonMissing.of(), + @JsonProperty("starting_balance") + @ExcludeMissing + startingBalance: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + ) : this( + id, + action, + amount, + createdAt, + creditNote, + description, + endingBalance, + invoice, + startingBalance, + type, + mutableMapOf(), + ) + /** * A unique id for this transaction. * @@ -3450,29 +3568,15 @@ private constructor( */ @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CustomerBalanceTransaction = apply { - if (validated) { - return@apply - } - - id() - action() - amount() - createdAt() - creditNote().ifPresent { it.validate() } - description() - endingBalance() - invoice().ifPresent { it.validate() } - startingBalance() - type() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3724,10 +3828,30 @@ private constructor( checkRequired("invoice", invoice), checkRequired("startingBalance", startingBalance), checkRequired("type", type), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CustomerBalanceTransaction = apply { + if (validated) { + return@apply + } + + id() + action() + amount() + createdAt() + creditNote().ifPresent { it.validate() } + description() + endingBalance() + invoice().ifPresent { it.validate() } + startingBalance() + type() + validated = true + } + class Action @JsonCreator private constructor(private val value: JsonField) : Enum { /** @@ -3870,17 +3994,17 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditNote - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * The id of the Credit note * @@ -3897,20 +4021,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditNote = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3986,7 +4105,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): CreditNote = - CreditNote(checkRequired("id", id), additionalProperties.toImmutable()) + CreditNote(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): CreditNote = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -4007,17 +4137,17 @@ private constructor( "CreditNote{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Invoice - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * The Invoice id * @@ -4034,20 +4164,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Invoice = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4123,15 +4248,26 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): Invoice = - Invoice(checkRequired("id", id), additionalProperties.toImmutable()) + Invoice(checkRequired("id", id), additionalProperties.toMutableMap()) } - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } + private var validated: Boolean = false - return /* spotless:off */ other is Invoice && id == other.id && additionalProperties == other.additionalProperties /* spotless:on */ + fun validate(): Invoice = apply { + if (validated) { + return@apply + } + + id() + validated = true + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Invoice && id == other.id && additionalProperties == other.additionalProperties /* spotless:on */ } /* spotless:off */ @@ -4365,21 +4501,21 @@ private constructor( * |Venezuela |`ve_rif` |Venezuelan RIF Number | * |Vietnam |`vn_tin` |Vietnamese Tax ID Number | */ - @NoAutoDetect class CustomerTaxId - @JsonCreator private constructor( - @JsonProperty("country") - @ExcludeMissing - private val country: JsonField = JsonMissing.of(), - @JsonProperty("type") @ExcludeMissing private val type: JsonField = JsonMissing.of(), - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val country: JsonField, + private val type: JsonField, + private val value: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("country") @ExcludeMissing country: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + @JsonProperty("value") @ExcludeMissing value: JsonField = JsonMissing.of(), + ) : this(country, type, value, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -4419,22 +4555,15 @@ private constructor( */ @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CustomerTaxId = apply { - if (validated) { - return@apply - } - - country() - type() - value() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4540,10 +4669,23 @@ private constructor( checkRequired("country", country), checkRequired("type", type), checkRequired("value", value), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CustomerTaxId = apply { + if (validated) { + return@apply + } + + country() + type() + value() + validated = true + } + class Country @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -5738,78 +5880,113 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class LineItem - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjusted_subtotal") - @ExcludeMissing - private val adjustedSubtotal: JsonField = JsonMissing.of(), - @JsonProperty("adjustments") - @ExcludeMissing - private val adjustments: JsonField> = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("credits_applied") - @ExcludeMissing - private val creditsApplied: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("filter") - @ExcludeMissing - private val filter: JsonField = JsonMissing.of(), - @JsonProperty("grouping") - @ExcludeMissing - private val grouping: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("partially_invoiced_amount") - @ExcludeMissing - private val partiallyInvoicedAmount: JsonField = JsonMissing.of(), - @JsonProperty("price") - @ExcludeMissing - private val price: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("sub_line_items") - @ExcludeMissing - private val subLineItems: JsonField> = JsonMissing.of(), - @JsonProperty("subtotal") - @ExcludeMissing - private val subtotal: JsonField = JsonMissing.of(), - @JsonProperty("tax_amounts") - @ExcludeMissing - private val taxAmounts: JsonField> = JsonMissing.of(), - @JsonProperty("usage_customer_ids") - @ExcludeMissing - private val usageCustomerIds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustedSubtotal: JsonField, + private val adjustments: JsonField>, + private val amount: JsonField, + private val creditsApplied: JsonField, + private val discount: JsonField, + private val endDate: JsonField, + private val filter: JsonField, + private val grouping: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val name: JsonField, + private val partiallyInvoicedAmount: JsonField, + private val price: JsonField, + private val quantity: JsonField, + private val startDate: JsonField, + private val subLineItems: JsonField>, + private val subtotal: JsonField, + private val taxAmounts: JsonField>, + private val usageCustomerIds: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjusted_subtotal") + @ExcludeMissing + adjustedSubtotal: JsonField = JsonMissing.of(), + @JsonProperty("adjustments") + @ExcludeMissing + adjustments: JsonField> = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("credits_applied") + @ExcludeMissing + creditsApplied: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("filter") @ExcludeMissing filter: JsonField = JsonMissing.of(), + @JsonProperty("grouping") + @ExcludeMissing + grouping: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("partially_invoiced_amount") + @ExcludeMissing + partiallyInvoicedAmount: JsonField = JsonMissing.of(), + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("sub_line_items") + @ExcludeMissing + subLineItems: JsonField> = JsonMissing.of(), + @JsonProperty("subtotal") + @ExcludeMissing + subtotal: JsonField = JsonMissing.of(), + @JsonProperty("tax_amounts") + @ExcludeMissing + taxAmounts: JsonField> = JsonMissing.of(), + @JsonProperty("usage_customer_ids") + @ExcludeMissing + usageCustomerIds: JsonField> = JsonMissing.of(), + ) : this( + id, + adjustedSubtotal, + adjustments, + amount, + creditsApplied, + discount, + endDate, + filter, + grouping, + maximum, + maximumAmount, + minimum, + minimumAmount, + name, + partiallyInvoicedAmount, + price, + quantity, + startDate, + subLineItems, + subtotal, + taxAmounts, + usageCustomerIds, + mutableMapOf(), + ) + /** * A unique ID for this line item. * @@ -6200,41 +6377,15 @@ private constructor( @ExcludeMissing fun _usageCustomerIds(): JsonField> = usageCustomerIds + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): LineItem = apply { - if (validated) { - return@apply - } - - id() - adjustedSubtotal() - adjustments().forEach { it.validate() } - amount() - creditsApplied() - discount().ifPresent { it.validate() } - endDate() - filter() - grouping() - maximum().ifPresent { it.validate() } - maximumAmount() - minimum().ifPresent { it.validate() } - minimumAmount() - name() - partiallyInvoicedAmount() - price().ifPresent { it.validate() } - quantity() - startDate() - subLineItems().forEach { it.validate() } - subtotal() - taxAmounts().forEach { it.validate() } - usageCustomerIds() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7032,10 +7183,42 @@ private constructor( checkRequired("subtotal", subtotal), checkRequired("taxAmounts", taxAmounts).map { it.toImmutable() }, checkRequired("usageCustomerIds", usageCustomerIds).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): LineItem = apply { + if (validated) { + return@apply + } + + id() + adjustedSubtotal() + adjustments().forEach { it.validate() } + amount() + creditsApplied() + discount().ifPresent { it.validate() } + endDate() + filter() + grouping() + maximum().ifPresent { it.validate() } + maximumAmount() + minimum().ifPresent { it.validate() } + minimumAmount() + name() + partiallyInvoicedAmount() + price().ifPresent { it.validate() } + quantity() + startDate() + subLineItems().forEach { it.validate() } + subtotal() + taxAmounts().forEach { it.validate() } + usageCustomerIds() + validated = true + } + @JsonDeserialize(using = Adjustment.Deserializer::class) @JsonSerialize(using = Adjustment.Serializer::class) class Adjustment @@ -7321,35 +7504,50 @@ private constructor( } } - @NoAutoDetect class MonetaryUsageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val reason: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amount, + appliesToPriceIds, + isInvoiceLevel, + reason, + usageDiscount, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -7474,26 +7672,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MonetaryUsageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amount() - appliesToPriceIds() - isInvoiceLevel() - reason() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7713,10 +7900,27 @@ private constructor( checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("reason", reason), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MonetaryUsageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amount() + appliesToPriceIds() + isInvoiceLevel() + reason() + usageDiscount() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -7837,39 +8041,54 @@ private constructor( "MonetaryUsageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, amount=$amount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, reason=$reason, usageDiscount=$usageDiscount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MonetaryAmountDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amount: JsonField, + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected - * value). + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amount, + amountDiscount, + appliesToPriceIds, + isInvoiceLevel, + reason, + mutableMapOf(), + ) + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected + * value). */ fun id(): String = id.getRequired("id") @@ -7990,26 +8209,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MonetaryAmountDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amount() - amountDiscount() - appliesToPriceIds() - isInvoiceLevel() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8229,10 +8437,27 @@ private constructor( }, checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MonetaryAmountDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amount() + amountDiscount() + appliesToPriceIds() + isInvoiceLevel() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -8353,35 +8578,50 @@ private constructor( "MonetaryAmountDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, amount=$amount, amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MonetaryPercentageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val percentageDiscount: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amount, + appliesToPriceIds, + isInvoiceLevel, + percentageDiscount, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -8507,26 +8747,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MonetaryPercentageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amount() - appliesToPriceIds() - isInvoiceLevel() - percentageDiscount() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8746,10 +8975,27 @@ private constructor( checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("percentageDiscount", percentageDiscount), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MonetaryPercentageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amount() + appliesToPriceIds() + isInvoiceLevel() + percentageDiscount() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -8870,38 +9116,55 @@ private constructor( "MonetaryPercentageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, amount=$amount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, percentageDiscount=$percentageDiscount, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MonetaryMinimumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val itemId: JsonField, + private val minimumAmount: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amount, + appliesToPriceIds, + isInvoiceLevel, + itemId, + minimumAmount, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -9043,27 +9306,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MonetaryMinimumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amount() - appliesToPriceIds() - isInvoiceLevel() - itemId() - minimumAmount() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9299,10 +9550,28 @@ private constructor( checkRequired("itemId", itemId), checkRequired("minimumAmount", minimumAmount), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MonetaryMinimumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amount() + appliesToPriceIds() + isInvoiceLevel() + itemId() + minimumAmount() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -9423,35 +9692,50 @@ private constructor( "MonetaryMinimumAdjustment{id=$id, adjustmentType=$adjustmentType, amount=$amount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, itemId=$itemId, minimumAmount=$minimumAmount, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MonetaryMaximumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val maximumAmount: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amount, + appliesToPriceIds, + isInvoiceLevel, + maximumAmount, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -9576,26 +9860,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MonetaryMaximumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amount() - appliesToPriceIds() - isInvoiceLevel() - maximumAmount() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9814,10 +10087,27 @@ private constructor( checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("maximumAmount", maximumAmount), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MonetaryMaximumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amount() + appliesToPriceIds() + isInvoiceLevel() + maximumAmount() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -9941,20 +10231,23 @@ private constructor( /** This field is deprecated in favor of `adjustments`. */ @Deprecated("deprecated") - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -9995,22 +10288,16 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -10127,10 +10414,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -10151,20 +10450,23 @@ private constructor( /** This field is deprecated in favor of `adjustments`. */ @Deprecated("deprecated") - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -10205,21 +10507,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10337,10 +10633,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -10532,32 +10840,37 @@ private constructor( } } - @NoAutoDetect class MatrixSubLineItem - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("grouping") - @ExcludeMissing - private val grouping: JsonField = JsonMissing.of(), - @JsonProperty("matrix_config") - @ExcludeMissing - private val matrixConfig: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("type") - @ExcludeMissing - private val type: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val grouping: JsonField, + private val matrixConfig: JsonField, + private val name: JsonField, + private val quantity: JsonField, + private val type: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("grouping") + @ExcludeMissing + grouping: JsonField = JsonMissing.of(), + @JsonProperty("matrix_config") + @ExcludeMissing + matrixConfig: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + ) : this(amount, grouping, matrixConfig, name, quantity, type, mutableMapOf()) + /** * The total amount for this sub line item. * @@ -10656,25 +10969,15 @@ private constructor( */ @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixSubLineItem = apply { - if (validated) { - return@apply - } - - amount() - grouping().ifPresent { it.validate() } - matrixConfig().validate() - name() - quantity() - type() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10839,24 +11142,43 @@ private constructor( checkRequired("name", name), checkRequired("quantity", quantity), checkRequired("type", type), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): MatrixSubLineItem = apply { + if (validated) { + return@apply + } + + amount() + grouping().ifPresent { it.validate() } + matrixConfig().validate() + name() + quantity() + type() + validated = true + } + class Grouping - @JsonCreator private constructor( - @JsonProperty("key") - @ExcludeMissing - private val key: JsonField = JsonMissing.of(), - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val key: JsonField, + private val value: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("key") + @ExcludeMissing + key: JsonField = JsonMissing.of(), + @JsonProperty("value") + @ExcludeMissing + value: JsonField = JsonMissing.of(), + ) : this(key, value, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or * is unexpectedly missing or null (e.g. if the server responded with an @@ -10888,21 +11210,15 @@ private constructor( */ @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Grouping = apply { - if (validated) { - return@apply - } - - key() - value() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -11000,10 +11316,22 @@ private constructor( Grouping( checkRequired("key", key), checkRequired("value", value), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Grouping = apply { + if (validated) { + return@apply + } + + key() + value() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -11022,17 +11350,19 @@ private constructor( "Grouping{key=$key, value=$value, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MatrixConfig - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of() + ) : this(dimensionValues, mutableMapOf()) + /** * The ordered dimension values for this line item. * @@ -11053,20 +11383,15 @@ private constructor( @ExcludeMissing fun _dimensionValues(): JsonField> = dimensionValues + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixConfig = apply { - if (validated) { - return@apply - } - - dimensionValues() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -11164,10 +11489,21 @@ private constructor( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MatrixConfig = apply { + if (validated) { + return@apply + } + + dimensionValues() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -11303,32 +11639,37 @@ private constructor( "MatrixSubLineItem{amount=$amount, grouping=$grouping, matrixConfig=$matrixConfig, name=$name, quantity=$quantity, type=$type, additionalProperties=$additionalProperties}" } - @NoAutoDetect class TierSubLineItem - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("grouping") - @ExcludeMissing - private val grouping: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("tier_config") - @ExcludeMissing - private val tierConfig: JsonField = JsonMissing.of(), - @JsonProperty("type") - @ExcludeMissing - private val type: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val grouping: JsonField, + private val name: JsonField, + private val quantity: JsonField, + private val tierConfig: JsonField, + private val type: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("grouping") + @ExcludeMissing + grouping: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("tier_config") + @ExcludeMissing + tierConfig: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + ) : this(amount, grouping, name, quantity, tierConfig, type, mutableMapOf()) + /** * The total amount for this sub line item. * @@ -11427,25 +11768,15 @@ private constructor( */ @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TierSubLineItem = apply { - if (validated) { - return@apply - } - - amount() - grouping().ifPresent { it.validate() } - name() - quantity() - tierConfig().validate() - type() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -11608,24 +11939,43 @@ private constructor( checkRequired("quantity", quantity), checkRequired("tierConfig", tierConfig), checkRequired("type", type), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TierSubLineItem = apply { + if (validated) { + return@apply + } + + amount() + grouping().ifPresent { it.validate() } + name() + quantity() + tierConfig().validate() + type() + validated = true + } + class Grouping - @JsonCreator private constructor( - @JsonProperty("key") - @ExcludeMissing - private val key: JsonField = JsonMissing.of(), - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val key: JsonField, + private val value: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("key") + @ExcludeMissing + key: JsonField = JsonMissing.of(), + @JsonProperty("value") + @ExcludeMissing + value: JsonField = JsonMissing.of(), + ) : this(key, value, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or * is unexpectedly missing or null (e.g. if the server responded with an @@ -11657,21 +12007,15 @@ private constructor( */ @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Grouping = apply { - if (validated) { - return@apply - } - - key() - value() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -11769,10 +12113,22 @@ private constructor( Grouping( checkRequired("key", key), checkRequired("value", value), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Grouping = apply { + if (validated) { + return@apply + } + + key() + value() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -11791,23 +12147,27 @@ private constructor( "Grouping{key=$key, value=$value, additionalProperties=$additionalProperties}" } - @NoAutoDetect class TierConfig - @JsonCreator private constructor( - @JsonProperty("first_unit") - @ExcludeMissing - private val firstUnit: JsonField = JsonMissing.of(), - @JsonProperty("last_unit") - @ExcludeMissing - private val lastUnit: JsonField = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val firstUnit: JsonField, + private val lastUnit: JsonField, + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("first_unit") + @ExcludeMissing + firstUnit: JsonField = JsonMissing.of(), + @JsonProperty("last_unit") + @ExcludeMissing + lastUnit: JsonField = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + ) : this(firstUnit, lastUnit, unitAmount, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or * is unexpectedly missing or null (e.g. if the server responded with an @@ -11859,22 +12219,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TierConfig = apply { - if (validated) { - return@apply - } - - firstUnit() - lastUnit() - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12000,10 +12353,23 @@ private constructor( checkRequired("firstUnit", firstUnit), checkRequired("lastUnit", lastUnit), checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): TierConfig = apply { + if (validated) { + return@apply + } + + firstUnit() + lastUnit() + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -12139,29 +12505,33 @@ private constructor( "TierSubLineItem{amount=$amount, grouping=$grouping, name=$name, quantity=$quantity, tierConfig=$tierConfig, type=$type, additionalProperties=$additionalProperties}" } - @NoAutoDetect class OtherSubLineItem - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("grouping") - @ExcludeMissing - private val grouping: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("type") - @ExcludeMissing - private val type: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val grouping: JsonField, + private val name: JsonField, + private val quantity: JsonField, + private val type: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("grouping") + @ExcludeMissing + grouping: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + ) : this(amount, grouping, name, quantity, type, mutableMapOf()) + /** * The total amount for this sub line item. * @@ -12243,24 +12613,15 @@ private constructor( */ @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): OtherSubLineItem = apply { - if (validated) { - return@apply - } - - amount() - grouping().ifPresent { it.validate() } - name() - quantity() - type() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12405,24 +12766,42 @@ private constructor( checkRequired("name", name), checkRequired("quantity", quantity), checkRequired("type", type), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): OtherSubLineItem = apply { + if (validated) { + return@apply + } + + amount() + grouping().ifPresent { it.validate() } + name() + quantity() + type() + validated = true + } + class Grouping - @JsonCreator private constructor( - @JsonProperty("key") - @ExcludeMissing - private val key: JsonField = JsonMissing.of(), - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val key: JsonField, + private val value: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("key") + @ExcludeMissing + key: JsonField = JsonMissing.of(), + @JsonProperty("value") + @ExcludeMissing + value: JsonField = JsonMissing.of(), + ) : this(key, value, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or * is unexpectedly missing or null (e.g. if the server responded with an @@ -12454,21 +12833,15 @@ private constructor( */ @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Grouping = apply { - if (validated) { - return@apply - } - - key() - value() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12566,10 +12939,22 @@ private constructor( Grouping( checkRequired("key", key), checkRequired("value", value), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Grouping = apply { + if (validated) { + return@apply + } + + key() + value() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -12706,23 +13091,27 @@ private constructor( } } - @NoAutoDetect class TaxAmount - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("tax_rate_description") - @ExcludeMissing - private val taxRateDescription: JsonField = JsonMissing.of(), - @JsonProperty("tax_rate_percentage") - @ExcludeMissing - private val taxRatePercentage: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val taxRateDescription: JsonField, + private val taxRatePercentage: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("tax_rate_description") + @ExcludeMissing + taxRateDescription: JsonField = JsonMissing.of(), + @JsonProperty("tax_rate_percentage") + @ExcludeMissing + taxRatePercentage: JsonField = JsonMissing.of(), + ) : this(amount, taxRateDescription, taxRatePercentage, mutableMapOf()) + /** * The amount of additional tax incurred by this tax rate. * @@ -12778,22 +13167,15 @@ private constructor( @ExcludeMissing fun _taxRatePercentage(): JsonField = taxRatePercentage + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TaxAmount = apply { - if (validated) { - return@apply - } - - amount() - taxRateDescription() - taxRatePercentage() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12918,10 +13300,23 @@ private constructor( checkRequired("amount", amount), checkRequired("taxRateDescription", taxRateDescription), checkRequired("taxRatePercentage", taxRatePercentage), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): TaxAmount = apply { + if (validated) { + return@apply + } + + amount() + taxRateDescription() + taxRatePercentage() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -12958,20 +13353,23 @@ private constructor( "LineItem{id=$id, adjustedSubtotal=$adjustedSubtotal, adjustments=$adjustments, amount=$amount, creditsApplied=$creditsApplied, discount=$discount, endDate=$endDate, filter=$filter, grouping=$grouping, maximum=$maximum, maximumAmount=$maximumAmount, minimum=$minimum, minimumAmount=$minimumAmount, name=$name, partiallyInvoicedAmount=$partiallyInvoicedAmount, price=$price, quantity=$quantity, startDate=$startDate, subLineItems=$subLineItems, subtotal=$subtotal, taxAmounts=$taxAmounts, usageCustomerIds=$usageCustomerIds, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, this * can be a subset of prices. @@ -13010,21 +13408,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13136,10 +13528,22 @@ private constructor( Maximum( checkRequired("appliesToPriceIds", appliesToPriceIds).map { it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -13163,27 +13567,20 @@ private constructor( * dictionary. Individual keys can be removed by setting the value to `null`, and the entire * metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13227,7 +13624,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -13247,20 +13654,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, this * can be a subset of prices. @@ -13299,21 +13709,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13425,10 +13829,22 @@ private constructor( Minimum( checkRequired("appliesToPriceIds", appliesToPriceIds).map { it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -13447,30 +13863,43 @@ private constructor( "Minimum{appliesToPriceIds=$appliesToPriceIds, minimumAmount=$minimumAmount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PaymentAttempt - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("payment_provider") - @ExcludeMissing - private val paymentProvider: JsonField = JsonMissing.of(), - @JsonProperty("payment_provider_id") - @ExcludeMissing - private val paymentProviderId: JsonField = JsonMissing.of(), - @JsonProperty("succeeded") - @ExcludeMissing - private val succeeded: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val amount: JsonField, + private val createdAt: JsonField, + private val paymentProvider: JsonField, + private val paymentProviderId: JsonField, + private val succeeded: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("payment_provider") + @ExcludeMissing + paymentProvider: JsonField = JsonMissing.of(), + @JsonProperty("payment_provider_id") + @ExcludeMissing + paymentProviderId: JsonField = JsonMissing.of(), + @JsonProperty("succeeded") + @ExcludeMissing + succeeded: JsonField = JsonMissing.of(), + ) : this( + id, + amount, + createdAt, + paymentProvider, + paymentProviderId, + succeeded, + mutableMapOf(), + ) + /** * The ID of the payment attempt. * @@ -13571,25 +14000,15 @@ private constructor( */ @JsonProperty("succeeded") @ExcludeMissing fun _succeeded(): JsonField = succeeded + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PaymentAttempt = apply { - if (validated) { - return@apply - } - - id() - amount() - createdAt() - paymentProvider() - paymentProviderId() - succeeded() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13767,10 +14186,26 @@ private constructor( checkRequired("paymentProvider", paymentProvider), checkRequired("paymentProviderId", paymentProviderId), checkRequired("succeeded", succeeded), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PaymentAttempt = apply { + if (validated) { + return@apply + } + + id() + amount() + createdAt() + paymentProvider() + paymentProviderId() + succeeded() + validated = true + } + /** The payment provider that attempted to collect the payment. */ class PaymentProvider @JsonCreator @@ -13887,32 +14322,29 @@ private constructor( "PaymentAttempt{id=$id, amount=$amount, createdAt=$createdAt, paymentProvider=$paymentProvider, paymentProviderId=$paymentProviderId, succeeded=$succeeded, additionalProperties=$additionalProperties}" } - @NoAutoDetect class ShippingAddress - @JsonCreator private constructor( - @JsonProperty("city") - @ExcludeMissing - private val city: JsonField = JsonMissing.of(), - @JsonProperty("country") - @ExcludeMissing - private val country: JsonField = JsonMissing.of(), - @JsonProperty("line1") - @ExcludeMissing - private val line1: JsonField = JsonMissing.of(), - @JsonProperty("line2") - @ExcludeMissing - private val line2: JsonField = JsonMissing.of(), - @JsonProperty("postal_code") - @ExcludeMissing - private val postalCode: JsonField = JsonMissing.of(), - @JsonProperty("state") - @ExcludeMissing - private val state: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val city: JsonField, + private val country: JsonField, + private val line1: JsonField, + private val line2: JsonField, + private val postalCode: JsonField, + private val state: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("city") @ExcludeMissing city: JsonField = JsonMissing.of(), + @JsonProperty("country") @ExcludeMissing country: JsonField = JsonMissing.of(), + @JsonProperty("line1") @ExcludeMissing line1: JsonField = JsonMissing.of(), + @JsonProperty("line2") @ExcludeMissing line2: JsonField = JsonMissing.of(), + @JsonProperty("postal_code") + @ExcludeMissing + postalCode: JsonField = JsonMissing.of(), + @JsonProperty("state") @ExcludeMissing state: JsonField = JsonMissing.of(), + ) : this(city, country, line1, line2, postalCode, state, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -13994,25 +14426,15 @@ private constructor( */ @JsonProperty("state") @ExcludeMissing fun _state(): JsonField = state + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ShippingAddress = apply { - if (validated) { - return@apply - } - - city() - country() - line1() - line2() - postalCode() - state() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -14184,10 +14606,26 @@ private constructor( checkRequired("line2", line2), checkRequired("postalCode", postalCode), checkRequired("state", state), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): ShippingAddress = apply { + if (validated) { + return@apply + } + + city() + country() + line1() + line2() + postalCode() + state() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -14321,15 +14759,17 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class Subscription - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -14343,20 +14783,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Subscription = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -14428,7 +14863,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): Subscription = - Subscription(checkRequired("id", id), additionalProperties.toImmutable()) + Subscription(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Subscription = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceIssueParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceIssueParams.kt index 4a68c401..4dc40971 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceIssueParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceIssueParams.kt @@ -10,14 +10,12 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional @@ -62,150 +60,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - fun _pathParam(index: Int): String = - when (index) { - 0 -> invoiceId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("synchronous") - @ExcludeMissing - private val synchronous: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * If true, the invoice will be issued synchronously. If false, the invoice will be issued - * asynchronously. The synchronous option is only available for invoices that have no usage - * fees. If the invoice is configured to sync to an external provider, a successful response - * from this endpoint guarantees the invoice is present in the provider. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun synchronous(): Optional = - Optional.ofNullable(synchronous.getNullable("synchronous")) - - /** - * Returns the raw JSON value of [synchronous]. - * - * Unlike [synchronous], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("synchronous") - @ExcludeMissing - fun _synchronous(): JsonField = synchronous - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - synchronous() - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** Returns a mutable builder for constructing an instance of [Body]. */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var synchronous: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - synchronous = body.synchronous - additionalProperties = body.additionalProperties.toMutableMap() - } - - /** - * If true, the invoice will be issued synchronously. If false, the invoice will be - * issued asynchronously. The synchronous option is only available for invoices that - * have no usage fees. If the invoice is configured to sync to an external provider, a - * successful response from this endpoint guarantees the invoice is present in the - * provider. - */ - fun synchronous(synchronous: Boolean) = synchronous(JsonField.of(synchronous)) - - /** - * Sets [Builder.synchronous] to an arbitrary JSON value. - * - * You should usually call [Builder.synchronous] with a well-typed [Boolean] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun synchronous(synchronous: JsonField) = apply { - this.synchronous = synchronous - } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - */ - fun build(): Body = Body(synchronous, additionalProperties.toImmutable()) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && synchronous == other.synchronous && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(synchronous, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{synchronous=$synchronous, additionalProperties=$additionalProperties}" - } - fun toBuilder() = Builder().from(this) companion object { @@ -222,7 +76,6 @@ private constructor( } /** A builder for [InvoiceIssueParams]. */ - @NoAutoDetect class Builder internal constructor() { private var invoiceId: String? = null @@ -395,6 +248,158 @@ private constructor( ) } + @JvmSynthetic internal fun _body(): Body = body + + fun _pathParam(index: Int): String = + when (index) { + 0 -> invoiceId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body + private constructor( + private val synchronous: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("synchronous") + @ExcludeMissing + synchronous: JsonField = JsonMissing.of() + ) : this(synchronous, mutableMapOf()) + + /** + * If true, the invoice will be issued synchronously. If false, the invoice will be issued + * asynchronously. The synchronous option is only available for invoices that have no usage + * fees. If the invoice is configured to sync to an external provider, a successful response + * from this endpoint guarantees the invoice is present in the provider. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun synchronous(): Optional = + Optional.ofNullable(synchronous.getNullable("synchronous")) + + /** + * Returns the raw JSON value of [synchronous]. + * + * Unlike [synchronous], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("synchronous") + @ExcludeMissing + fun _synchronous(): JsonField = synchronous + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** Returns a mutable builder for constructing an instance of [Body]. */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var synchronous: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + synchronous = body.synchronous + additionalProperties = body.additionalProperties.toMutableMap() + } + + /** + * If true, the invoice will be issued synchronously. If false, the invoice will be + * issued asynchronously. The synchronous option is only available for invoices that + * have no usage fees. If the invoice is configured to sync to an external provider, a + * successful response from this endpoint guarantees the invoice is present in the + * provider. + */ + fun synchronous(synchronous: Boolean) = synchronous(JsonField.of(synchronous)) + + /** + * Sets [Builder.synchronous] to an arbitrary JSON value. + * + * You should usually call [Builder.synchronous] with a well-typed [Boolean] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun synchronous(synchronous: JsonField) = apply { + this.synchronous = synchronous + } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + */ + fun build(): Body = Body(synchronous, additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Body = apply { + if (validated) { + return@apply + } + + synchronous() + validated = true + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Body && synchronous == other.synchronous && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(synchronous, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{synchronous=$synchronous, additionalProperties=$additionalProperties}" + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceLineItemCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceLineItemCreateParams.kt index 951e4200..a3df4561 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceLineItemCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceLineItemCreateParams.kt @@ -10,15 +10,13 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.LocalDate +import java.util.Collections import java.util.Objects /** @@ -129,340 +127,233 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams + fun toBuilder() = Builder().from(this) - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("invoice_id") - @ExcludeMissing - private val invoiceId: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { + companion object { /** - * The total amount in the invoice's currency to add to the line item. + * Returns a mutable builder for constructing an instance of [InvoiceLineItemCreateParams]. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * The following fields are required: + * ```java + * .amount() + * .endDate() + * .invoiceId() + * .name() + * .quantity() + * .startDate() + * ``` */ - fun amount(): String = amount.getRequired("amount") + @JvmStatic fun builder() = Builder() + } - /** - * A date string to specify the line item's end date in the customer's timezone. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun endDate(): LocalDate = endDate.getRequired("end_date") + /** A builder for [InvoiceLineItemCreateParams]. */ + class Builder internal constructor() { - /** - * The id of the Invoice to add this line item. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun invoiceId(): String = invoiceId.getRequired("invoice_id") + private var body: Body.Builder = Body.builder() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() - /** - * The item name associated with this line item. If an item with the same name exists in - * Orb, that item will be associated with the line item. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun name(): String = name.getRequired("name") + @JvmSynthetic + internal fun from(invoiceLineItemCreateParams: InvoiceLineItemCreateParams) = apply { + body = invoiceLineItemCreateParams.body.toBuilder() + additionalHeaders = invoiceLineItemCreateParams.additionalHeaders.toBuilder() + additionalQueryParams = invoiceLineItemCreateParams.additionalQueryParams.toBuilder() + } - /** - * The number of units on the line item - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun quantity(): Double = quantity.getRequired("quantity") + /** The total amount in the invoice's currency to add to the line item. */ + fun amount(amount: String) = apply { body.amount(amount) } /** - * A date string to specify the line item's start date in the customer's timezone. + * Sets [Builder.amount] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * You should usually call [Builder.amount] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - fun startDate(): LocalDate = startDate.getRequired("start_date") + fun amount(amount: JsonField) = apply { body.amount(amount) } + + /** A date string to specify the line item's end date in the customer's timezone. */ + fun endDate(endDate: LocalDate) = apply { body.endDate(endDate) } /** - * Returns the raw JSON value of [amount]. + * Sets [Builder.endDate] to an arbitrary JSON value. * - * Unlike [amount], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.endDate] with a well-typed [LocalDate] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. */ - @JsonProperty("amount") @ExcludeMissing fun _amount(): JsonField = amount + fun endDate(endDate: JsonField) = apply { body.endDate(endDate) } + + /** The id of the Invoice to add this line item. */ + fun invoiceId(invoiceId: String) = apply { body.invoiceId(invoiceId) } /** - * Returns the raw JSON value of [endDate]. + * Sets [Builder.invoiceId] to an arbitrary JSON value. * - * Unlike [endDate], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.invoiceId] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. */ - @JsonProperty("end_date") @ExcludeMissing fun _endDate(): JsonField = endDate + fun invoiceId(invoiceId: JsonField) = apply { body.invoiceId(invoiceId) } /** - * Returns the raw JSON value of [invoiceId]. - * - * Unlike [invoiceId], this method doesn't throw if the JSON field has an unexpected type. + * The item name associated with this line item. If an item with the same name exists in + * Orb, that item will be associated with the line item. */ - @JsonProperty("invoice_id") @ExcludeMissing fun _invoiceId(): JsonField = invoiceId + fun name(name: String) = apply { body.name(name) } /** - * Returns the raw JSON value of [name]. + * Sets [Builder.name] to an arbitrary JSON value. * - * Unlike [name], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.name] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + fun name(name: JsonField) = apply { body.name(name) } + + /** The number of units on the line item */ + fun quantity(quantity: Double) = apply { body.quantity(quantity) } /** - * Returns the raw JSON value of [quantity]. + * Sets [Builder.quantity] to an arbitrary JSON value. * - * Unlike [quantity], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.quantity] with a well-typed [Double] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - @JsonProperty("quantity") @ExcludeMissing fun _quantity(): JsonField = quantity + fun quantity(quantity: JsonField) = apply { body.quantity(quantity) } + + /** A date string to specify the line item's start date in the customer's timezone. */ + fun startDate(startDate: LocalDate) = apply { body.startDate(startDate) } /** - * Returns the raw JSON value of [startDate]. + * Sets [Builder.startDate] to an arbitrary JSON value. * - * Unlike [startDate], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.startDate] with a well-typed [LocalDate] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. */ - @JsonProperty("start_date") - @ExcludeMissing - fun _startDate(): JsonField = startDate + fun startDate(startDate: JsonField) = apply { body.startDate(startDate) } - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun additionalBodyProperties(additionalBodyProperties: Map) = apply { + body.additionalProperties(additionalBodyProperties) + } - private var validated: Boolean = false + fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { + body.putAdditionalProperty(key, value) + } - fun validate(): Body = apply { - if (validated) { - return@apply + fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = + apply { + body.putAllAdditionalProperties(additionalBodyProperties) } - amount() - endDate() - invoiceId() - name() - quantity() - startDate() - validated = true + fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + body.removeAllAdditionalProperties(keys) } - fun toBuilder() = Builder().from(this) + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - companion object { + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .amount() - * .endDate() - * .invoiceId() - * .name() - * .quantity() - * .startDate() - * ``` - */ - @JvmStatic fun builder() = Builder() + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) } - /** A builder for [Body]. */ - class Builder internal constructor() { + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } - private var amount: JsonField? = null - private var endDate: JsonField? = null - private var invoiceId: JsonField? = null - private var name: JsonField? = null - private var quantity: JsonField? = null - private var startDate: JsonField? = null - private var additionalProperties: MutableMap = mutableMapOf() + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - @JvmSynthetic - internal fun from(body: Body) = apply { - amount = body.amount - endDate = body.endDate - invoiceId = body.invoiceId - name = body.name - quantity = body.quantity - startDate = body.startDate - additionalProperties = body.additionalProperties.toMutableMap() - } + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - /** The total amount in the invoice's currency to add to the line item. */ - fun amount(amount: String) = amount(JsonField.of(amount)) + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } - /** - * Sets [Builder.amount] to an arbitrary JSON value. - * - * You should usually call [Builder.amount] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun amount(amount: JsonField) = apply { this.amount = amount } + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } - /** A date string to specify the line item's end date in the customer's timezone. */ - fun endDate(endDate: LocalDate) = endDate(JsonField.of(endDate)) + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** - * Sets [Builder.endDate] to an arbitrary JSON value. - * - * You should usually call [Builder.endDate] with a well-typed [LocalDate] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun endDate(endDate: JsonField) = apply { this.endDate = endDate } + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** The id of the Invoice to add this line item. */ - fun invoiceId(invoiceId: String) = invoiceId(JsonField.of(invoiceId)) - - /** - * Sets [Builder.invoiceId] to an arbitrary JSON value. - * - * You should usually call [Builder.invoiceId] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun invoiceId(invoiceId: JsonField) = apply { this.invoiceId = invoiceId } - - /** - * The item name associated with this line item. If an item with the same name exists in - * Orb, that item will be associated with the line item. - */ - fun name(name: String) = name(JsonField.of(name)) - - /** - * Sets [Builder.name] to an arbitrary JSON value. - * - * You should usually call [Builder.name] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun name(name: JsonField) = apply { this.name = name } - - /** The number of units on the line item */ - fun quantity(quantity: Double) = quantity(JsonField.of(quantity)) - - /** - * Sets [Builder.quantity] to an arbitrary JSON value. - * - * You should usually call [Builder.quantity] with a well-typed [Double] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun quantity(quantity: JsonField) = apply { this.quantity = quantity } - - /** A date string to specify the line item's start date in the customer's timezone. */ - fun startDate(startDate: LocalDate) = startDate(JsonField.of(startDate)) - - /** - * Sets [Builder.startDate] to an arbitrary JSON value. - * - * You should usually call [Builder.startDate] with a well-typed [LocalDate] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun startDate(startDate: JsonField) = apply { this.startDate = startDate } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .amount() - * .endDate() - * .invoiceId() - * .name() - * .quantity() - * .startDate() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body( - checkRequired("amount", amount), - checkRequired("endDate", endDate), - checkRequired("invoiceId", invoiceId), - checkRequired("name", name), - checkRequired("quantity", quantity), - checkRequired("startDate", startDate), - additionalProperties.toImmutable(), - ) + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } - override fun equals(other: Any?): Boolean { - if (this === other) { - return true + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) } - return /* spotless:off */ other is Body && amount == other.amount && endDate == other.endDate && invoiceId == other.invoiceId && name == other.name && quantity == other.quantity && startDate == other.startDate && additionalProperties == other.additionalProperties /* spotless:on */ + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) } - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(amount, endDate, invoiceId, name, quantity, startDate, additionalProperties) } - /* spotless:on */ + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } - override fun hashCode(): Int = hashCode + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - override fun toString() = - "Body{amount=$amount, endDate=$endDate, invoiceId=$invoiceId, name=$name, quantity=$quantity, startDate=$startDate, additionalProperties=$additionalProperties}" - } + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - fun toBuilder() = Builder().from(this) + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } - companion object { + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } /** - * Returns a mutable builder for constructing an instance of [InvoiceLineItemCreateParams]. + * Returns an immutable instance of [InvoiceLineItemCreateParams]. + * + * Further updates to this [Builder] will not mutate the returned instance. * * The following fields are required: * ```java @@ -473,237 +364,352 @@ private constructor( * .quantity() * .startDate() * ``` + * + * @throws IllegalStateException if any required field is unset. */ - @JvmStatic fun builder() = Builder() + fun build(): InvoiceLineItemCreateParams = + InvoiceLineItemCreateParams( + body.build(), + additionalHeaders.build(), + additionalQueryParams.build(), + ) } - /** A builder for [InvoiceLineItemCreateParams]. */ - @NoAutoDetect - class Builder internal constructor() { + @JvmSynthetic internal fun _body(): Body = body - private var body: Body.Builder = Body.builder() - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + override fun _headers(): Headers = additionalHeaders - @JvmSynthetic - internal fun from(invoiceLineItemCreateParams: InvoiceLineItemCreateParams) = apply { - body = invoiceLineItemCreateParams.body.toBuilder() - additionalHeaders = invoiceLineItemCreateParams.additionalHeaders.toBuilder() - additionalQueryParams = invoiceLineItemCreateParams.additionalQueryParams.toBuilder() - } + override fun _queryParams(): QueryParams = additionalQueryParams - /** The total amount in the invoice's currency to add to the line item. */ - fun amount(amount: String) = apply { body.amount(amount) } + class Body + private constructor( + private val amount: JsonField, + private val endDate: JsonField, + private val invoiceId: JsonField, + private val name: JsonField, + private val quantity: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("invoice_id") + @ExcludeMissing + invoiceId: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(amount, endDate, invoiceId, name, quantity, startDate, mutableMapOf()) /** - * Sets [Builder.amount] to an arbitrary JSON value. + * The total amount in the invoice's currency to add to the line item. * - * You should usually call [Builder.amount] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun amount(amount: JsonField) = apply { body.amount(amount) } - - /** A date string to specify the line item's end date in the customer's timezone. */ - fun endDate(endDate: LocalDate) = apply { body.endDate(endDate) } + fun amount(): String = amount.getRequired("amount") /** - * Sets [Builder.endDate] to an arbitrary JSON value. + * A date string to specify the line item's end date in the customer's timezone. * - * You should usually call [Builder.endDate] with a well-typed [LocalDate] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun endDate(endDate: JsonField) = apply { body.endDate(endDate) } - - /** The id of the Invoice to add this line item. */ - fun invoiceId(invoiceId: String) = apply { body.invoiceId(invoiceId) } + fun endDate(): LocalDate = endDate.getRequired("end_date") /** - * Sets [Builder.invoiceId] to an arbitrary JSON value. + * The id of the Invoice to add this line item. * - * You should usually call [Builder.invoiceId] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun invoiceId(invoiceId: JsonField) = apply { body.invoiceId(invoiceId) } + fun invoiceId(): String = invoiceId.getRequired("invoice_id") /** * The item name associated with this line item. If an item with the same name exists in * Orb, that item will be associated with the line item. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun name(name: String) = apply { body.name(name) } + fun name(): String = name.getRequired("name") /** - * Sets [Builder.name] to an arbitrary JSON value. + * The number of units on the line item * - * You should usually call [Builder.name] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun name(name: JsonField) = apply { body.name(name) } - - /** The number of units on the line item */ - fun quantity(quantity: Double) = apply { body.quantity(quantity) } + fun quantity(): Double = quantity.getRequired("quantity") /** - * Sets [Builder.quantity] to an arbitrary JSON value. + * A date string to specify the line item's start date in the customer's timezone. * - * You should usually call [Builder.quantity] with a well-typed [Double] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun quantity(quantity: JsonField) = apply { body.quantity(quantity) } + fun startDate(): LocalDate = startDate.getRequired("start_date") - /** A date string to specify the line item's start date in the customer's timezone. */ - fun startDate(startDate: LocalDate) = apply { body.startDate(startDate) } + /** + * Returns the raw JSON value of [amount]. + * + * Unlike [amount], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("amount") @ExcludeMissing fun _amount(): JsonField = amount /** - * Sets [Builder.startDate] to an arbitrary JSON value. + * Returns the raw JSON value of [endDate]. * - * You should usually call [Builder.startDate] with a well-typed [LocalDate] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. + * Unlike [endDate], this method doesn't throw if the JSON field has an unexpected type. */ - fun startDate(startDate: JsonField) = apply { body.startDate(startDate) } + @JsonProperty("end_date") @ExcludeMissing fun _endDate(): JsonField = endDate - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { - body.additionalProperties(additionalBodyProperties) - } + /** + * Returns the raw JSON value of [invoiceId]. + * + * Unlike [invoiceId], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("invoice_id") @ExcludeMissing fun _invoiceId(): JsonField = invoiceId - fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - body.putAdditionalProperty(key, value) - } + /** + * Returns the raw JSON value of [name]. + * + * Unlike [name], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name - fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = - apply { - body.putAllAdditionalProperties(additionalBodyProperties) - } + /** + * Returns the raw JSON value of [quantity]. + * + * Unlike [quantity], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("quantity") @ExcludeMissing fun _quantity(): JsonField = quantity - fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + /** + * Returns the raw JSON value of [startDate]. + * + * Unlike [startDate], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("start_date") + @ExcludeMissing + fun _startDate(): JsonField = startDate - fun removeAllAdditionalBodyProperties(keys: Set) = apply { - body.removeAllAdditionalProperties(keys) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + fun toBuilder() = Builder().from(this) - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } + companion object { - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .amount() + * .endDate() + * .invoiceId() + * .name() + * .quantity() + * .startDate() + * ``` + */ + @JvmStatic fun builder() = Builder() } - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** A builder for [Body]. */ + class Builder internal constructor() { - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + private var amount: JsonField? = null + private var endDate: JsonField? = null + private var invoiceId: JsonField? = null + private var name: JsonField? = null + private var quantity: JsonField? = null + private var startDate: JsonField? = null + private var additionalProperties: MutableMap = mutableMapOf() - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } + @JvmSynthetic + internal fun from(body: Body) = apply { + amount = body.amount + endDate = body.endDate + invoiceId = body.invoiceId + name = body.name + quantity = body.quantity + startDate = body.startDate + additionalProperties = body.additionalProperties.toMutableMap() + } - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } + /** The total amount in the invoice's currency to add to the line item. */ + fun amount(amount: String) = amount(JsonField.of(amount)) - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** + * Sets [Builder.amount] to an arbitrary JSON value. + * + * You should usually call [Builder.amount] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun amount(amount: JsonField) = apply { this.amount = amount } - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** A date string to specify the line item's end date in the customer's timezone. */ + fun endDate(endDate: LocalDate) = endDate(JsonField.of(endDate)) - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + /** + * Sets [Builder.endDate] to an arbitrary JSON value. + * + * You should usually call [Builder.endDate] with a well-typed [LocalDate] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun endDate(endDate: JsonField) = apply { this.endDate = endDate } - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } + /** The id of the Invoice to add this line item. */ + fun invoiceId(invoiceId: String) = invoiceId(JsonField.of(invoiceId)) - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + /** + * Sets [Builder.invoiceId] to an arbitrary JSON value. + * + * You should usually call [Builder.invoiceId] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun invoiceId(invoiceId: JsonField) = apply { this.invoiceId = invoiceId } - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + /** + * The item name associated with this line item. If an item with the same name exists in + * Orb, that item will be associated with the line item. + */ + fun name(name: String) = name(JsonField.of(name)) - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } + /** + * Sets [Builder.name] to an arbitrary JSON value. + * + * You should usually call [Builder.name] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun name(name: JsonField) = apply { this.name = name } - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) - } + /** The number of units on the line item */ + fun quantity(quantity: Double) = quantity(JsonField.of(quantity)) - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } + /** + * Sets [Builder.quantity] to an arbitrary JSON value. + * + * You should usually call [Builder.quantity] with a well-typed [Double] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun quantity(quantity: JsonField) = apply { this.quantity = quantity } - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) + /** A date string to specify the line item's start date in the customer's timezone. */ + fun startDate(startDate: LocalDate) = startDate(JsonField.of(startDate)) + + /** + * Sets [Builder.startDate] to an arbitrary JSON value. + * + * You should usually call [Builder.startDate] with a well-typed [LocalDate] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun startDate(startDate: JsonField) = apply { this.startDate = startDate } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) } - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) - } + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .amount() + * .endDate() + * .invoiceId() + * .name() + * .quantity() + * .startDate() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body( + checkRequired("amount", amount), + checkRequired("endDate", endDate), + checkRequired("invoiceId", invoiceId), + checkRequired("name", name), + checkRequired("quantity", quantity), + checkRequired("startDate", startDate), + additionalProperties.toMutableMap(), + ) } - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + private var validated: Boolean = false + + fun validate(): Body = apply { + if (validated) { + return@apply } - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + amount() + endDate() + invoiceId() + name() + quantity() + startDate() + validated = true + } - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Body && amount == other.amount && endDate == other.endDate && invoiceId == other.invoiceId && name == other.name && quantity == other.quantity && startDate == other.startDate && additionalProperties == other.additionalProperties /* spotless:on */ } - /** - * Returns an immutable instance of [InvoiceLineItemCreateParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .amount() - * .endDate() - * .invoiceId() - * .name() - * .quantity() - * .startDate() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): InvoiceLineItemCreateParams = - InvoiceLineItemCreateParams( - body.build(), - additionalHeaders.build(), - additionalQueryParams.build(), - ) + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(amount, endDate, invoiceId, name, quantity, startDate, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{amount=$amount, endDate=$endDate, invoiceId=$invoiceId, name=$name, quantity=$quantity, startDate=$startDate, additionalProperties=$additionalProperties}" } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceLineItemCreateResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceLineItemCreateResponse.kt index f820e667..ce4874b9 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceLineItemCreateResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceLineItemCreateResponse.kt @@ -20,85 +20,116 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class InvoiceLineItemCreateResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjusted_subtotal") - @ExcludeMissing - private val adjustedSubtotal: JsonField = JsonMissing.of(), - @JsonProperty("adjustments") - @ExcludeMissing - private val adjustments: JsonField> = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("credits_applied") - @ExcludeMissing - private val creditsApplied: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("filter") - @ExcludeMissing - private val filter: JsonField = JsonMissing.of(), - @JsonProperty("grouping") - @ExcludeMissing - private val grouping: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("name") @ExcludeMissing private val name: JsonField = JsonMissing.of(), - @JsonProperty("partially_invoiced_amount") - @ExcludeMissing - private val partiallyInvoicedAmount: JsonField = JsonMissing.of(), - @JsonProperty("price") @ExcludeMissing private val price: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("sub_line_items") - @ExcludeMissing - private val subLineItems: JsonField> = JsonMissing.of(), - @JsonProperty("subtotal") - @ExcludeMissing - private val subtotal: JsonField = JsonMissing.of(), - @JsonProperty("tax_amounts") - @ExcludeMissing - private val taxAmounts: JsonField> = JsonMissing.of(), - @JsonProperty("usage_customer_ids") - @ExcludeMissing - private val usageCustomerIds: JsonField> = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustedSubtotal: JsonField, + private val adjustments: JsonField>, + private val amount: JsonField, + private val creditsApplied: JsonField, + private val discount: JsonField, + private val endDate: JsonField, + private val filter: JsonField, + private val grouping: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val name: JsonField, + private val partiallyInvoicedAmount: JsonField, + private val price: JsonField, + private val quantity: JsonField, + private val startDate: JsonField, + private val subLineItems: JsonField>, + private val subtotal: JsonField, + private val taxAmounts: JsonField>, + private val usageCustomerIds: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjusted_subtotal") + @ExcludeMissing + adjustedSubtotal: JsonField = JsonMissing.of(), + @JsonProperty("adjustments") + @ExcludeMissing + adjustments: JsonField> = JsonMissing.of(), + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("credits_applied") + @ExcludeMissing + creditsApplied: JsonField = JsonMissing.of(), + @JsonProperty("discount") @ExcludeMissing discount: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("filter") @ExcludeMissing filter: JsonField = JsonMissing.of(), + @JsonProperty("grouping") @ExcludeMissing grouping: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("partially_invoiced_amount") + @ExcludeMissing + partiallyInvoicedAmount: JsonField = JsonMissing.of(), + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("quantity") @ExcludeMissing quantity: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("sub_line_items") + @ExcludeMissing + subLineItems: JsonField> = JsonMissing.of(), + @JsonProperty("subtotal") @ExcludeMissing subtotal: JsonField = JsonMissing.of(), + @JsonProperty("tax_amounts") + @ExcludeMissing + taxAmounts: JsonField> = JsonMissing.of(), + @JsonProperty("usage_customer_ids") + @ExcludeMissing + usageCustomerIds: JsonField> = JsonMissing.of(), + ) : this( + id, + adjustedSubtotal, + adjustments, + amount, + creditsApplied, + discount, + endDate, + filter, + grouping, + maximum, + maximumAmount, + minimum, + minimumAmount, + name, + partiallyInvoicedAmount, + price, + quantity, + startDate, + subLineItems, + subtotal, + taxAmounts, + usageCustomerIds, + mutableMapOf(), + ) + /** * A unique ID for this line item. * @@ -482,41 +513,15 @@ private constructor( @ExcludeMissing fun _usageCustomerIds(): JsonField> = usageCustomerIds + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoiceLineItemCreateResponse = apply { - if (validated) { - return@apply - } - - id() - adjustedSubtotal() - adjustments().forEach { it.validate() } - amount() - creditsApplied() - discount().ifPresent { it.validate() } - endDate() - filter() - grouping() - maximum().ifPresent { it.validate() } - maximumAmount() - minimum().ifPresent { it.validate() } - minimumAmount() - name() - partiallyInvoicedAmount() - price().ifPresent { it.validate() } - quantity() - startDate() - subLineItems().forEach { it.validate() } - subtotal() - taxAmounts().forEach { it.validate() } - usageCustomerIds() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1285,10 +1290,42 @@ private constructor( checkRequired("subtotal", subtotal), checkRequired("taxAmounts", taxAmounts).map { it.toImmutable() }, checkRequired("usageCustomerIds", usageCustomerIds).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoiceLineItemCreateResponse = apply { + if (validated) { + return@apply + } + + id() + adjustedSubtotal() + adjustments().forEach { it.validate() } + amount() + creditsApplied() + discount().ifPresent { it.validate() } + endDate() + filter() + grouping() + maximum().ifPresent { it.validate() } + maximumAmount() + minimum().ifPresent { it.validate() } + minimumAmount() + name() + partiallyInvoicedAmount() + price().ifPresent { it.validate() } + quantity() + startDate() + subLineItems().forEach { it.validate() } + subtotal() + taxAmounts().forEach { it.validate() } + usageCustomerIds() + validated = true + } + @JsonDeserialize(using = Adjustment.Deserializer::class) @JsonSerialize(using = Adjustment.Serializer::class) class Adjustment @@ -1559,35 +1596,50 @@ private constructor( } } - @NoAutoDetect class MonetaryUsageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val reason: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amount, + appliesToPriceIds, + isInvoiceLevel, + reason, + usageDiscount, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -1710,26 +1762,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MonetaryUsageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amount() - appliesToPriceIds() - isInvoiceLevel() - reason() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1947,10 +1988,27 @@ private constructor( checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("reason", reason), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MonetaryUsageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amount() + appliesToPriceIds() + isInvoiceLevel() + reason() + usageDiscount() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2070,35 +2128,48 @@ private constructor( "MonetaryUsageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, amount=$amount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, reason=$reason, usageDiscount=$usageDiscount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MonetaryAmountDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amount: JsonField, + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("reason") @ExcludeMissing reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amount, + amountDiscount, + appliesToPriceIds, + isInvoiceLevel, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2221,26 +2292,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MonetaryAmountDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amount() - amountDiscount() - appliesToPriceIds() - isInvoiceLevel() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2460,10 +2520,27 @@ private constructor( }, checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MonetaryAmountDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amount() + amountDiscount() + appliesToPriceIds() + isInvoiceLevel() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2583,35 +2660,48 @@ private constructor( "MonetaryAmountDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, amount=$amount, amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MonetaryPercentageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val percentageDiscount: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("reason") @ExcludeMissing reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amount, + appliesToPriceIds, + isInvoiceLevel, + percentageDiscount, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2734,26 +2824,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MonetaryPercentageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amount() - appliesToPriceIds() - isInvoiceLevel() - percentageDiscount() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2973,10 +3052,27 @@ private constructor( checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("percentageDiscount", percentageDiscount), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MonetaryPercentageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amount() + appliesToPriceIds() + isInvoiceLevel() + percentageDiscount() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3096,38 +3192,53 @@ private constructor( "MonetaryPercentageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, amount=$amount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, percentageDiscount=$percentageDiscount, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MonetaryMinimumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val itemId: JsonField, + private val minimumAmount: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("reason") @ExcludeMissing reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amount, + appliesToPriceIds, + isInvoiceLevel, + itemId, + minimumAmount, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3266,27 +3377,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MonetaryMinimumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amount() - appliesToPriceIds() - isInvoiceLevel() - itemId() - minimumAmount() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3519,10 +3618,28 @@ private constructor( checkRequired("itemId", itemId), checkRequired("minimumAmount", minimumAmount), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MonetaryMinimumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amount() + appliesToPriceIds() + isInvoiceLevel() + itemId() + minimumAmount() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3642,35 +3759,48 @@ private constructor( "MonetaryMinimumAdjustment{id=$id, adjustmentType=$adjustmentType, amount=$amount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, itemId=$itemId, minimumAmount=$minimumAmount, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MonetaryMaximumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val maximumAmount: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("reason") @ExcludeMissing reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amount, + appliesToPriceIds, + isInvoiceLevel, + maximumAmount, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3793,26 +3923,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MonetaryMaximumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amount() - appliesToPriceIds() - isInvoiceLevel() - maximumAmount() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4028,10 +4147,27 @@ private constructor( checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("maximumAmount", maximumAmount), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MonetaryMaximumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amount() + appliesToPriceIds() + isInvoiceLevel() + maximumAmount() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4154,20 +4290,23 @@ private constructor( /** This field is deprecated in favor of `adjustments`. */ @Deprecated("deprecated") - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, this * can be a subset of prices. @@ -4206,21 +4345,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4332,10 +4465,22 @@ private constructor( Maximum( checkRequired("appliesToPriceIds", appliesToPriceIds).map { it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -4356,20 +4501,23 @@ private constructor( /** This field is deprecated in favor of `adjustments`. */ @Deprecated("deprecated") - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, this * can be a subset of prices. @@ -4408,21 +4556,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4534,10 +4676,22 @@ private constructor( Minimum( checkRequired("appliesToPriceIds", appliesToPriceIds).map { it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -4723,34 +4877,37 @@ private constructor( } } - @NoAutoDetect class MatrixSubLineItem - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("grouping") - @ExcludeMissing - private val grouping: JsonField = JsonMissing.of(), - @JsonProperty("matrix_config") - @ExcludeMissing - private val matrixConfig: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("type") - @ExcludeMissing - private val type: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val grouping: JsonField, + private val matrixConfig: JsonField, + private val name: JsonField, + private val quantity: JsonField, + private val type: JsonField, + private val additionalProperties: MutableMap, ) { - /** - * The total amount for this sub line item. + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("grouping") + @ExcludeMissing + grouping: JsonField = JsonMissing.of(), + @JsonProperty("matrix_config") + @ExcludeMissing + matrixConfig: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + ) : this(amount, grouping, matrixConfig, name, quantity, type, mutableMapOf()) + + /** + * The total amount for this sub line item. * * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4842,25 +4999,15 @@ private constructor( */ @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixSubLineItem = apply { - if (validated) { - return@apply - } - - amount() - grouping().ifPresent { it.validate() } - matrixConfig().validate() - name() - quantity() - type() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5024,24 +5171,41 @@ private constructor( checkRequired("name", name), checkRequired("quantity", quantity), checkRequired("type", type), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): MatrixSubLineItem = apply { + if (validated) { + return@apply + } + + amount() + grouping().ifPresent { it.validate() } + matrixConfig().validate() + name() + quantity() + type() + validated = true + } + class Grouping - @JsonCreator private constructor( - @JsonProperty("key") - @ExcludeMissing - private val key: JsonField = JsonMissing.of(), - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val key: JsonField, + private val value: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("key") @ExcludeMissing key: JsonField = JsonMissing.of(), + @JsonProperty("value") + @ExcludeMissing + value: JsonField = JsonMissing.of(), + ) : this(key, value, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -5072,21 +5236,15 @@ private constructor( */ @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Grouping = apply { - if (validated) { - return@apply - } - - key() - value() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5183,10 +5341,22 @@ private constructor( Grouping( checkRequired("key", key), checkRequired("value", value), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Grouping = apply { + if (validated) { + return@apply + } + + key() + value() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5205,17 +5375,19 @@ private constructor( "Grouping{key=$key, value=$value, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MatrixConfig - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of() + ) : this(dimensionValues, mutableMapOf()) + /** * The ordered dimension values for this line item. * @@ -5236,20 +5408,15 @@ private constructor( @ExcludeMissing fun _dimensionValues(): JsonField> = dimensionValues + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixConfig = apply { - if (validated) { - return@apply - } - - dimensionValues() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5344,10 +5511,21 @@ private constructor( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MatrixConfig = apply { + if (validated) { + return@apply + } + + dimensionValues() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5481,32 +5659,35 @@ private constructor( "MatrixSubLineItem{amount=$amount, grouping=$grouping, matrixConfig=$matrixConfig, name=$name, quantity=$quantity, type=$type, additionalProperties=$additionalProperties}" } - @NoAutoDetect class TierSubLineItem - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("grouping") - @ExcludeMissing - private val grouping: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("tier_config") - @ExcludeMissing - private val tierConfig: JsonField = JsonMissing.of(), - @JsonProperty("type") - @ExcludeMissing - private val type: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val grouping: JsonField, + private val name: JsonField, + private val quantity: JsonField, + private val tierConfig: JsonField, + private val type: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("grouping") + @ExcludeMissing + grouping: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("tier_config") + @ExcludeMissing + tierConfig: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + ) : this(amount, grouping, name, quantity, tierConfig, type, mutableMapOf()) + /** * The total amount for this sub line item. * @@ -5600,25 +5781,15 @@ private constructor( */ @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TierSubLineItem = apply { - if (validated) { - return@apply - } - - amount() - grouping().ifPresent { it.validate() } - name() - quantity() - tierConfig().validate() - type() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5781,24 +5952,41 @@ private constructor( checkRequired("quantity", quantity), checkRequired("tierConfig", tierConfig), checkRequired("type", type), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TierSubLineItem = apply { + if (validated) { + return@apply + } + + amount() + grouping().ifPresent { it.validate() } + name() + quantity() + tierConfig().validate() + type() + validated = true + } + class Grouping - @JsonCreator private constructor( - @JsonProperty("key") - @ExcludeMissing - private val key: JsonField = JsonMissing.of(), - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val key: JsonField, + private val value: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("key") @ExcludeMissing key: JsonField = JsonMissing.of(), + @JsonProperty("value") + @ExcludeMissing + value: JsonField = JsonMissing.of(), + ) : this(key, value, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -5829,21 +6017,15 @@ private constructor( */ @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Grouping = apply { - if (validated) { - return@apply - } - - key() - value() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5940,10 +6122,22 @@ private constructor( Grouping( checkRequired("key", key), checkRequired("value", value), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Grouping = apply { + if (validated) { + return@apply + } + + key() + value() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5962,23 +6156,27 @@ private constructor( "Grouping{key=$key, value=$value, additionalProperties=$additionalProperties}" } - @NoAutoDetect class TierConfig - @JsonCreator private constructor( - @JsonProperty("first_unit") - @ExcludeMissing - private val firstUnit: JsonField = JsonMissing.of(), - @JsonProperty("last_unit") - @ExcludeMissing - private val lastUnit: JsonField = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val firstUnit: JsonField, + private val lastUnit: JsonField, + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("first_unit") + @ExcludeMissing + firstUnit: JsonField = JsonMissing.of(), + @JsonProperty("last_unit") + @ExcludeMissing + lastUnit: JsonField = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + ) : this(firstUnit, lastUnit, unitAmount, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -6030,22 +6228,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TierConfig = apply { - if (validated) { - return@apply - } - - firstUnit() - lastUnit() - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6168,10 +6359,23 @@ private constructor( checkRequired("firstUnit", firstUnit), checkRequired("lastUnit", lastUnit), checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): TierConfig = apply { + if (validated) { + return@apply + } + + firstUnit() + lastUnit() + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6305,29 +6509,31 @@ private constructor( "TierSubLineItem{amount=$amount, grouping=$grouping, name=$name, quantity=$quantity, tierConfig=$tierConfig, type=$type, additionalProperties=$additionalProperties}" } - @NoAutoDetect class OtherSubLineItem - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("grouping") - @ExcludeMissing - private val grouping: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("type") - @ExcludeMissing - private val type: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val grouping: JsonField, + private val name: JsonField, + private val quantity: JsonField, + private val type: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("grouping") + @ExcludeMissing + grouping: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("type") @ExcludeMissing type: JsonField = JsonMissing.of(), + ) : this(amount, grouping, name, quantity, type, mutableMapOf()) + /** * The total amount for this sub line item. * @@ -6404,24 +6610,15 @@ private constructor( */ @JsonProperty("type") @ExcludeMissing fun _type(): JsonField = type + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): OtherSubLineItem = apply { - if (validated) { - return@apply - } - - amount() - grouping().ifPresent { it.validate() } - name() - quantity() - type() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6566,24 +6763,40 @@ private constructor( checkRequired("name", name), checkRequired("quantity", quantity), checkRequired("type", type), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): OtherSubLineItem = apply { + if (validated) { + return@apply + } + + amount() + grouping().ifPresent { it.validate() } + name() + quantity() + type() + validated = true + } + class Grouping - @JsonCreator private constructor( - @JsonProperty("key") - @ExcludeMissing - private val key: JsonField = JsonMissing.of(), - @JsonProperty("value") - @ExcludeMissing - private val value: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val key: JsonField, + private val value: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("key") @ExcludeMissing key: JsonField = JsonMissing.of(), + @JsonProperty("value") + @ExcludeMissing + value: JsonField = JsonMissing.of(), + ) : this(key, value, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -6614,21 +6827,15 @@ private constructor( */ @JsonProperty("value") @ExcludeMissing fun _value(): JsonField = value + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Grouping = apply { - if (validated) { - return@apply - } - - key() - value() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6725,10 +6932,22 @@ private constructor( Grouping( checkRequired("key", key), checkRequired("value", value), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Grouping = apply { + if (validated) { + return@apply + } + + key() + value() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6863,23 +7082,25 @@ private constructor( } } - @NoAutoDetect class TaxAmount - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("tax_rate_description") - @ExcludeMissing - private val taxRateDescription: JsonField = JsonMissing.of(), - @JsonProperty("tax_rate_percentage") - @ExcludeMissing - private val taxRatePercentage: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val taxRateDescription: JsonField, + private val taxRatePercentage: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(), + @JsonProperty("tax_rate_description") + @ExcludeMissing + taxRateDescription: JsonField = JsonMissing.of(), + @JsonProperty("tax_rate_percentage") + @ExcludeMissing + taxRatePercentage: JsonField = JsonMissing.of(), + ) : this(amount, taxRateDescription, taxRatePercentage, mutableMapOf()) + /** * The amount of additional tax incurred by this tax rate. * @@ -6932,22 +7153,15 @@ private constructor( @ExcludeMissing fun _taxRatePercentage(): JsonField = taxRatePercentage + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TaxAmount = apply { - if (validated) { - return@apply - } - - amount() - taxRateDescription() - taxRatePercentage() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7068,10 +7282,23 @@ private constructor( checkRequired("amount", amount), checkRequired("taxRateDescription", taxRateDescription), checkRequired("taxRatePercentage", taxRatePercentage), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): TaxAmount = apply { + if (validated) { + return@apply + } + + amount() + taxRateDescription() + taxRatePercentage() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceListPage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceListPage.kt index d4679886..e47e79c8 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceListPage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceListPage.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.blocking.InvoiceService +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.stream.Stream @@ -94,17 +92,19 @@ private constructor( InvoiceListPage(invoicesService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -117,9 +117,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -188,7 +194,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceListPageAsync.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceListPageAsync.kt index 0527679a..08ed498f 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceListPageAsync.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceListPageAsync.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.async.InvoiceServiceAsync +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.concurrent.CompletableFuture @@ -99,17 +97,19 @@ private constructor( ) = InvoiceListPageAsync(invoicesService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -122,9 +122,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -193,7 +199,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceListParams.kt index 7816a9d2..c4f2cb8b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceListParams.kt @@ -5,7 +5,6 @@ package com.withorb.api.models import com.fasterxml.jackson.annotation.JsonCreator import com.withorb.api.core.Enum import com.withorb.api.core.JsonField -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams @@ -109,42 +108,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - amount?.let { put("amount", it) } - amountGt?.let { put("amount[gt]", it) } - amountLt?.let { put("amount[lt]", it) } - cursor?.let { put("cursor", it) } - customerId?.let { put("customer_id", it) } - dateType?.let { put("date_type", it.toString()) } - dueDate?.let { put("due_date", it.toString()) } - dueDateWindow?.let { put("due_date_window", it) } - dueDateGt?.let { put("due_date[gt]", it.toString()) } - dueDateLt?.let { put("due_date[lt]", it.toString()) } - externalCustomerId?.let { put("external_customer_id", it) } - invoiceDateGt?.let { - put("invoice_date[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - invoiceDateGte?.let { - put("invoice_date[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - invoiceDateLt?.let { - put("invoice_date[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - invoiceDateLte?.let { - put("invoice_date[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - isRecurring?.let { put("is_recurring", it.toString()) } - limit?.let { put("limit", it.toString()) } - status?.forEach { put("status[]", it.toString()) } - subscriptionId?.let { put("subscription_id", it) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -156,7 +119,6 @@ private constructor( } /** A builder for [InvoiceListParams]. */ - @NoAutoDetect class Builder internal constructor() { private var amount: String? = null @@ -482,6 +444,42 @@ private constructor( ) } + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + amount?.let { put("amount", it) } + amountGt?.let { put("amount[gt]", it) } + amountLt?.let { put("amount[lt]", it) } + cursor?.let { put("cursor", it) } + customerId?.let { put("customer_id", it) } + dateType?.let { put("date_type", it.toString()) } + dueDate?.let { put("due_date", it.toString()) } + dueDateWindow?.let { put("due_date_window", it) } + dueDateGt?.let { put("due_date[gt]", it.toString()) } + dueDateLt?.let { put("due_date[lt]", it.toString()) } + externalCustomerId?.let { put("external_customer_id", it) } + invoiceDateGt?.let { + put("invoice_date[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + invoiceDateGte?.let { + put("invoice_date[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + invoiceDateLt?.let { + put("invoice_date[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + invoiceDateLte?.let { + put("invoice_date[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + isRecurring?.let { put("is_recurring", it.toString()) } + limit?.let { put("limit", it.toString()) } + status?.forEach { put("status[]", it.toString()) } + subscriptionId?.let { put("subscription_id", it) } + putAll(additionalQueryParams) + } + .build() + class DateType @JsonCreator private constructor(private val value: JsonField) : Enum { /** diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceMarkPaidParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceMarkPaidParams.kt index 8563e09f..997190ca 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceMarkPaidParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceMarkPaidParams.kt @@ -10,15 +10,13 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.LocalDate +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -89,238 +87,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - fun _pathParam(index: Int): String = - when (index) { - 0 -> invoiceId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("payment_received_date") - @ExcludeMissing - private val paymentReceivedDate: JsonField = JsonMissing.of(), - @JsonProperty("external_id") - @ExcludeMissing - private val externalId: JsonField = JsonMissing.of(), - @JsonProperty("notes") - @ExcludeMissing - private val notes: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * A date string to specify the date of the payment. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun paymentReceivedDate(): LocalDate = - paymentReceivedDate.getRequired("payment_received_date") - - /** - * An optional external ID to associate with the payment. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun externalId(): Optional = - Optional.ofNullable(externalId.getNullable("external_id")) - - /** - * An optional note to associate with the payment. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun notes(): Optional = Optional.ofNullable(notes.getNullable("notes")) - - /** - * Returns the raw JSON value of [paymentReceivedDate]. - * - * Unlike [paymentReceivedDate], this method doesn't throw if the JSON field has an - * unexpected type. - */ - @JsonProperty("payment_received_date") - @ExcludeMissing - fun _paymentReceivedDate(): JsonField = paymentReceivedDate - - /** - * Returns the raw JSON value of [externalId]. - * - * Unlike [externalId], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("external_id") - @ExcludeMissing - fun _externalId(): JsonField = externalId - - /** - * Returns the raw JSON value of [notes]. - * - * Unlike [notes], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("notes") @ExcludeMissing fun _notes(): JsonField = notes - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - paymentReceivedDate() - externalId() - notes() - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .paymentReceivedDate() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var paymentReceivedDate: JsonField? = null - private var externalId: JsonField = JsonMissing.of() - private var notes: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - paymentReceivedDate = body.paymentReceivedDate - externalId = body.externalId - notes = body.notes - additionalProperties = body.additionalProperties.toMutableMap() - } - - /** A date string to specify the date of the payment. */ - fun paymentReceivedDate(paymentReceivedDate: LocalDate) = - paymentReceivedDate(JsonField.of(paymentReceivedDate)) - - /** - * Sets [Builder.paymentReceivedDate] to an arbitrary JSON value. - * - * You should usually call [Builder.paymentReceivedDate] with a well-typed [LocalDate] - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - fun paymentReceivedDate(paymentReceivedDate: JsonField) = apply { - this.paymentReceivedDate = paymentReceivedDate - } - - /** An optional external ID to associate with the payment. */ - fun externalId(externalId: String?) = externalId(JsonField.ofNullable(externalId)) - - /** Alias for calling [Builder.externalId] with `externalId.orElse(null)`. */ - fun externalId(externalId: Optional) = externalId(externalId.getOrNull()) - - /** - * Sets [Builder.externalId] to an arbitrary JSON value. - * - * You should usually call [Builder.externalId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun externalId(externalId: JsonField) = apply { this.externalId = externalId } - - /** An optional note to associate with the payment. */ - fun notes(notes: String?) = notes(JsonField.ofNullable(notes)) - - /** Alias for calling [Builder.notes] with `notes.orElse(null)`. */ - fun notes(notes: Optional) = notes(notes.getOrNull()) - - /** - * Sets [Builder.notes] to an arbitrary JSON value. - * - * You should usually call [Builder.notes] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun notes(notes: JsonField) = apply { this.notes = notes } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .paymentReceivedDate() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body( - checkRequired("paymentReceivedDate", paymentReceivedDate), - externalId, - notes, - additionalProperties.toImmutable(), - ) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && paymentReceivedDate == other.paymentReceivedDate && externalId == other.externalId && notes == other.notes && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(paymentReceivedDate, externalId, notes, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{paymentReceivedDate=$paymentReceivedDate, externalId=$externalId, notes=$notes, additionalProperties=$additionalProperties}" - } - fun toBuilder() = Builder().from(this) companion object { @@ -338,7 +104,6 @@ private constructor( } /** A builder for [InvoiceMarkPaidParams]. */ - @NoAutoDetect class Builder internal constructor() { private var invoiceId: String? = null @@ -540,6 +305,246 @@ private constructor( ) } + @JvmSynthetic internal fun _body(): Body = body + + fun _pathParam(index: Int): String = + when (index) { + 0 -> invoiceId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body + private constructor( + private val paymentReceivedDate: JsonField, + private val externalId: JsonField, + private val notes: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("payment_received_date") + @ExcludeMissing + paymentReceivedDate: JsonField = JsonMissing.of(), + @JsonProperty("external_id") + @ExcludeMissing + externalId: JsonField = JsonMissing.of(), + @JsonProperty("notes") @ExcludeMissing notes: JsonField = JsonMissing.of(), + ) : this(paymentReceivedDate, externalId, notes, mutableMapOf()) + + /** + * A date string to specify the date of the payment. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun paymentReceivedDate(): LocalDate = + paymentReceivedDate.getRequired("payment_received_date") + + /** + * An optional external ID to associate with the payment. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun externalId(): Optional = + Optional.ofNullable(externalId.getNullable("external_id")) + + /** + * An optional note to associate with the payment. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun notes(): Optional = Optional.ofNullable(notes.getNullable("notes")) + + /** + * Returns the raw JSON value of [paymentReceivedDate]. + * + * Unlike [paymentReceivedDate], this method doesn't throw if the JSON field has an + * unexpected type. + */ + @JsonProperty("payment_received_date") + @ExcludeMissing + fun _paymentReceivedDate(): JsonField = paymentReceivedDate + + /** + * Returns the raw JSON value of [externalId]. + * + * Unlike [externalId], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("external_id") + @ExcludeMissing + fun _externalId(): JsonField = externalId + + /** + * Returns the raw JSON value of [notes]. + * + * Unlike [notes], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("notes") @ExcludeMissing fun _notes(): JsonField = notes + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .paymentReceivedDate() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var paymentReceivedDate: JsonField? = null + private var externalId: JsonField = JsonMissing.of() + private var notes: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + paymentReceivedDate = body.paymentReceivedDate + externalId = body.externalId + notes = body.notes + additionalProperties = body.additionalProperties.toMutableMap() + } + + /** A date string to specify the date of the payment. */ + fun paymentReceivedDate(paymentReceivedDate: LocalDate) = + paymentReceivedDate(JsonField.of(paymentReceivedDate)) + + /** + * Sets [Builder.paymentReceivedDate] to an arbitrary JSON value. + * + * You should usually call [Builder.paymentReceivedDate] with a well-typed [LocalDate] + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + fun paymentReceivedDate(paymentReceivedDate: JsonField) = apply { + this.paymentReceivedDate = paymentReceivedDate + } + + /** An optional external ID to associate with the payment. */ + fun externalId(externalId: String?) = externalId(JsonField.ofNullable(externalId)) + + /** Alias for calling [Builder.externalId] with `externalId.orElse(null)`. */ + fun externalId(externalId: Optional) = externalId(externalId.getOrNull()) + + /** + * Sets [Builder.externalId] to an arbitrary JSON value. + * + * You should usually call [Builder.externalId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun externalId(externalId: JsonField) = apply { this.externalId = externalId } + + /** An optional note to associate with the payment. */ + fun notes(notes: String?) = notes(JsonField.ofNullable(notes)) + + /** Alias for calling [Builder.notes] with `notes.orElse(null)`. */ + fun notes(notes: Optional) = notes(notes.getOrNull()) + + /** + * Sets [Builder.notes] to an arbitrary JSON value. + * + * You should usually call [Builder.notes] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun notes(notes: JsonField) = apply { this.notes = notes } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .paymentReceivedDate() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body( + checkRequired("paymentReceivedDate", paymentReceivedDate), + externalId, + notes, + additionalProperties.toMutableMap(), + ) + } + + private var validated: Boolean = false + + fun validate(): Body = apply { + if (validated) { + return@apply + } + + paymentReceivedDate() + externalId() + notes() + validated = true + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Body && paymentReceivedDate == other.paymentReceivedDate && externalId == other.externalId && notes == other.notes && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(paymentReceivedDate, externalId, notes, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{paymentReceivedDate=$paymentReceivedDate, externalId=$externalId, notes=$notes, additionalProperties=$additionalProperties}" + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoicePayParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoicePayParams.kt index 52d65bb0..2eefcbd2 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoicePayParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoicePayParams.kt @@ -2,13 +2,15 @@ package com.withorb.api.models +import com.fasterxml.jackson.annotation.JsonAnyGetter +import com.fasterxml.jackson.annotation.JsonAnySetter +import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.toImmutable +import java.util.Collections import java.util.Objects import java.util.Optional @@ -21,7 +23,7 @@ private constructor( private val invoiceId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: Map, + private val additionalBodyProperties: MutableMap, ) : Params { fun invoiceId(): String = invoiceId @@ -30,21 +32,15 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _additionalBodyProperties(): Map = additionalBodyProperties - - @JvmSynthetic - internal fun _body(): Optional> = - Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) - - fun _pathParam(index: Int): String = - when (index) { - 0 -> invoiceId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders + @JsonAnySetter + private fun putAdditionalBodyProperty(key: String, value: JsonValue) { + additionalBodyProperties.put(key, value) + } - override fun _queryParams(): QueryParams = additionalQueryParams + @JsonAnyGetter + @ExcludeMissing + fun _additionalBodyProperties(): Map = + Collections.unmodifiableMap(additionalBodyProperties) fun toBuilder() = Builder().from(this) @@ -62,7 +58,6 @@ private constructor( } /** A builder for [InvoicePayParams]. */ - @NoAutoDetect class Builder internal constructor() { private var invoiceId: String? = null @@ -217,10 +212,24 @@ private constructor( checkRequired("invoiceId", invoiceId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toImmutable(), + additionalBodyProperties.toMutableMap(), ) } + @JvmSynthetic + internal fun _body(): Optional> = + Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) + + fun _pathParam(index: Int): String = + when (index) { + 0 -> invoiceId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceUpdateParams.kt index b48284fb..9d3aa027 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceUpdateParams.kt @@ -10,14 +10,12 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -61,145 +59,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - fun _pathParam(index: Int): String = - when (index) { - 0 -> invoiceId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) - - /** - * Returns the raw JSON value of [metadata]. - * - * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - metadata().ifPresent { it.validate() } - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** Returns a mutable builder for constructing an instance of [Body]. */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var metadata: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - metadata = body.metadata - additionalProperties = body.additionalProperties.toMutableMap() - } - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by - * setting `metadata` to `null`. - */ - fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) - - /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ - fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) - - /** - * Sets [Builder.metadata] to an arbitrary JSON value. - * - * You should usually call [Builder.metadata] with a well-typed [Metadata] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun metadata(metadata: JsonField) = apply { this.metadata = metadata } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - */ - fun build(): Body = Body(metadata, additionalProperties.toImmutable()) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && metadata == other.metadata && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(metadata, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{metadata=$metadata, additionalProperties=$additionalProperties}" - } - fun toBuilder() = Builder().from(this) companion object { @@ -216,7 +75,6 @@ private constructor( } /** A builder for [InvoiceUpdateParams]. */ - @NoAutoDetect class Builder internal constructor() { private var invoiceId: String? = null @@ -391,33 +249,173 @@ private constructor( ) } - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by setting - * the value to `null`, and the entire metadata mapping can be cleared by setting `metadata` to - * `null`. - */ - @NoAutoDetect - class Metadata - @JsonCreator + @JvmSynthetic internal fun _body(): Body = body + + fun _pathParam(index: Int): String = + when (index) { + 0 -> invoiceId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of() + ) : this(metadata, mutableMapOf()) + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) + + /** + * Returns the raw JSON value of [metadata]. + * + * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** Returns a mutable builder for constructing an instance of [Body]. */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var metadata: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + metadata = body.metadata + additionalProperties = body.additionalProperties.toMutableMap() + } + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by + * setting `metadata` to `null`. + */ + fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) + + /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ + fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) + + /** + * Sets [Builder.metadata] to an arbitrary JSON value. + * + * You should usually call [Builder.metadata] with a well-typed [Metadata] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun metadata(metadata: JsonField) = apply { this.metadata = metadata } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + */ + fun build(): Body = Body(metadata, additionalProperties.toMutableMap()) + } private var validated: Boolean = false - fun validate(): Metadata = apply { + fun validate(): Body = apply { if (validated) { return@apply } + metadata().ifPresent { it.validate() } validated = true } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Body && metadata == other.metadata && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(metadata, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{metadata=$metadata, additionalProperties=$additionalProperties}" + } + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by setting + * the value to `null`, and the entire metadata mapping can be cleared by setting `metadata` to + * `null`. + */ + class Metadata + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -460,7 +458,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceVoidInvoiceParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceVoidInvoiceParams.kt index e74c3892..c78a0b87 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceVoidInvoiceParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceVoidInvoiceParams.kt @@ -2,13 +2,15 @@ package com.withorb.api.models +import com.fasterxml.jackson.annotation.JsonAnyGetter +import com.fasterxml.jackson.annotation.JsonAnySetter +import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.toImmutable +import java.util.Collections import java.util.Objects import java.util.Optional @@ -28,7 +30,7 @@ private constructor( private val invoiceId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: Map, + private val additionalBodyProperties: MutableMap, ) : Params { fun invoiceId(): String = invoiceId @@ -37,21 +39,15 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _additionalBodyProperties(): Map = additionalBodyProperties - - @JvmSynthetic - internal fun _body(): Optional> = - Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) - - fun _pathParam(index: Int): String = - when (index) { - 0 -> invoiceId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders + @JsonAnySetter + private fun putAdditionalBodyProperty(key: String, value: JsonValue) { + additionalBodyProperties.put(key, value) + } - override fun _queryParams(): QueryParams = additionalQueryParams + @JsonAnyGetter + @ExcludeMissing + fun _additionalBodyProperties(): Map = + Collections.unmodifiableMap(additionalBodyProperties) fun toBuilder() = Builder().from(this) @@ -69,7 +65,6 @@ private constructor( } /** A builder for [InvoiceVoidInvoiceParams]. */ - @NoAutoDetect class Builder internal constructor() { private var invoiceId: String? = null @@ -225,10 +220,24 @@ private constructor( checkRequired("invoiceId", invoiceId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toImmutable(), + additionalBodyProperties.toMutableMap(), ) } + @JvmSynthetic + internal fun _body(): Optional> = + Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) + + fun _pathParam(index: Int): String = + when (index) { + 0 -> invoiceId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/Item.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/Item.kt index 50740795..a3825e46 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/Item.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/Item.kt @@ -11,13 +11,12 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects /** @@ -25,21 +24,27 @@ import java.util.Objects * items, billable metrics, and prices and are used for defining external sync behavior for invoices * and tax calculation purposes. */ -@NoAutoDetect class Item -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("external_connections") - @ExcludeMissing - private val externalConnections: JsonField> = JsonMissing.of(), - @JsonProperty("name") @ExcludeMissing private val name: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val createdAt: JsonField, + private val externalConnections: JsonField>, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("external_connections") + @ExcludeMissing + externalConnections: JsonField> = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, createdAt, externalConnections, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -98,23 +103,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - createdAt() - externalConnections().forEach { it.validate() } - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -249,24 +246,41 @@ private constructor( checkRequired("createdAt", createdAt), checkRequired("externalConnections", externalConnections).map { it.toImmutable() }, checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + createdAt() + externalConnections().forEach { it.validate() } + name() + validated = true + } + class ExternalConnection - @JsonCreator private constructor( - @JsonProperty("external_connection_name") - @ExcludeMissing - private val externalConnectionName: JsonField = JsonMissing.of(), - @JsonProperty("external_entity_id") - @ExcludeMissing - private val externalEntityId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val externalConnectionName: JsonField, + private val externalEntityId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("external_connection_name") + @ExcludeMissing + externalConnectionName: JsonField = JsonMissing.of(), + @JsonProperty("external_entity_id") + @ExcludeMissing + externalEntityId: JsonField = JsonMissing.of(), + ) : this(externalConnectionName, externalEntityId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -300,21 +314,15 @@ private constructor( @ExcludeMissing fun _externalEntityId(): JsonField = externalEntityId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ExternalConnection = apply { - if (validated) { - return@apply - } - - externalConnectionName() - externalEntityId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -411,10 +419,22 @@ private constructor( ExternalConnection( checkRequired("externalConnectionName", externalConnectionName), checkRequired("externalEntityId", externalEntityId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): ExternalConnection = apply { + if (validated) { + return@apply + } + + externalConnectionName() + externalEntityId() + validated = true + } + class ExternalConnectionName @JsonCreator private constructor(private val value: JsonField) : Enum { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemCreateParams.kt index bef124aa..f138325e 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemCreateParams.kt @@ -10,14 +10,12 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects /** This endpoint is used to create an [Item](/core-concepts#item). */ @@ -49,144 +47,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * The name of the item. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun name(): String = name.getRequired("name") - - /** - * Returns the raw JSON value of [name]. - * - * Unlike [name], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - name() - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .name() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var name: JsonField? = null - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - name = body.name - additionalProperties = body.additionalProperties.toMutableMap() - } - - /** The name of the item. */ - fun name(name: String) = name(JsonField.of(name)) - - /** - * Sets [Builder.name] to an arbitrary JSON value. - * - * You should usually call [Builder.name] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun name(name: JsonField) = apply { this.name = name } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .name() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body(checkRequired("name", name), additionalProperties.toImmutable()) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && name == other.name && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(name, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = "Body{name=$name, additionalProperties=$additionalProperties}" - } - fun toBuilder() = Builder().from(this) companion object { @@ -203,7 +63,6 @@ private constructor( } /** A builder for [ItemCreateParams]. */ - @NoAutoDetect class Builder internal constructor() { private var body: Body.Builder = Body.builder() @@ -361,6 +220,150 @@ private constructor( ItemCreateParams(body.build(), additionalHeaders.build(), additionalQueryParams.build()) } + @JvmSynthetic internal fun _body(): Body = body + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body + private constructor( + private val name: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of() + ) : this(name, mutableMapOf()) + + /** + * The name of the item. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun name(): String = name.getRequired("name") + + /** + * Returns the raw JSON value of [name]. + * + * Unlike [name], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .name() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var name: JsonField? = null + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + name = body.name + additionalProperties = body.additionalProperties.toMutableMap() + } + + /** The name of the item. */ + fun name(name: String) = name(JsonField.of(name)) + + /** + * Sets [Builder.name] to an arbitrary JSON value. + * + * You should usually call [Builder.name] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun name(name: JsonField) = apply { this.name = name } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .name() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body(checkRequired("name", name), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Body = apply { + if (validated) { + return@apply + } + + name() + validated = true + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Body && name == other.name && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(name, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = "Body{name=$name, additionalProperties=$additionalProperties}" + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemFetchParams.kt index 2c2a8b25..8d1f7aa4 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemFetchParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -23,16 +22,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> itemId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - fun toBuilder() = Builder().from(this) companion object { @@ -49,7 +38,6 @@ private constructor( } /** A builder for [ItemFetchParams]. */ - @NoAutoDetect class Builder internal constructor() { private var itemId: String? = null @@ -183,6 +171,16 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> itemId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemListPage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemListPage.kt index dae91724..be1b3087 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemListPage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemListPage.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.blocking.ItemService +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.stream.Stream @@ -81,17 +79,19 @@ private constructor( ItemListPage(itemsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -104,9 +104,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -175,7 +181,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemListPageAsync.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemListPageAsync.kt index 8aa30a19..99e19c55 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemListPageAsync.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemListPageAsync.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.async.ItemServiceAsync +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.concurrent.CompletableFuture @@ -83,17 +81,19 @@ private constructor( ItemListPageAsync(itemsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -106,9 +106,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -177,7 +183,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemListParams.kt index 8a772661..cdd5d184 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemListParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams @@ -32,17 +31,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - cursor?.let { put("cursor", it) } - limit?.let { put("limit", it.toString()) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -54,7 +42,6 @@ private constructor( } /** A builder for [ItemListParams]. */ - @NoAutoDetect class Builder internal constructor() { private var cursor: String? = null @@ -199,6 +186,17 @@ private constructor( ItemListParams(cursor, limit, additionalHeaders.build(), additionalQueryParams.build()) } + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + cursor?.let { put("cursor", it) } + limit?.let { put("limit", it.toString()) } + putAll(additionalQueryParams) + } + .build() + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemUpdateParams.kt index 335435af..572867a1 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemUpdateParams.kt @@ -11,15 +11,14 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -68,203 +67,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - fun _pathParam(index: Int): String = - when (index) { - 0 -> itemId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - - /** - * A list of external connections to map an item to. Note that passing `null` will clear - * existing mappings. Orb requires that you pass the full list of mappings; this list will - * replace the existing item mappings. - */ - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("external_connections") - @ExcludeMissing - private val externalConnections: JsonField> = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun externalConnections(): Optional> = - Optional.ofNullable(externalConnections.getNullable("external_connections")) - - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun name(): Optional = Optional.ofNullable(name.getNullable("name")) - - /** - * Returns the raw JSON value of [externalConnections]. - * - * Unlike [externalConnections], this method doesn't throw if the JSON field has an - * unexpected type. - */ - @JsonProperty("external_connections") - @ExcludeMissing - fun _externalConnections(): JsonField> = externalConnections - - /** - * Returns the raw JSON value of [name]. - * - * Unlike [name], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - externalConnections().ifPresent { it.forEach { it.validate() } } - name() - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** Returns a mutable builder for constructing an instance of [Body]. */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var externalConnections: JsonField>? = null - private var name: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - externalConnections = body.externalConnections.map { it.toMutableList() } - name = body.name - additionalProperties = body.additionalProperties.toMutableMap() - } - - fun externalConnections(externalConnections: List?) = - externalConnections(JsonField.ofNullable(externalConnections)) - - /** - * Alias for calling [Builder.externalConnections] with - * `externalConnections.orElse(null)`. - */ - fun externalConnections(externalConnections: Optional>) = - externalConnections(externalConnections.getOrNull()) - - /** - * Sets [Builder.externalConnections] to an arbitrary JSON value. - * - * You should usually call [Builder.externalConnections] with a well-typed - * `List` value instead. This method is primarily for setting the - * field to an undocumented or not yet supported value. - */ - fun externalConnections(externalConnections: JsonField>) = - apply { - this.externalConnections = externalConnections.map { it.toMutableList() } - } - - /** - * Adds a single [ExternalConnection] to [externalConnections]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addExternalConnection(externalConnection: ExternalConnection) = apply { - externalConnections = - (externalConnections ?: JsonField.of(mutableListOf())).also { - checkKnown("externalConnections", it).add(externalConnection) - } - } - - fun name(name: String?) = name(JsonField.ofNullable(name)) - - /** Alias for calling [Builder.name] with `name.orElse(null)`. */ - fun name(name: Optional) = name(name.getOrNull()) - - /** - * Sets [Builder.name] to an arbitrary JSON value. - * - * You should usually call [Builder.name] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun name(name: JsonField) = apply { this.name = name } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - */ - fun build(): Body = - Body( - (externalConnections ?: JsonMissing.of()).map { it.toImmutable() }, - name, - additionalProperties.toImmutable(), - ) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && externalConnections == other.externalConnections && name == other.name && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(externalConnections, name, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{externalConnections=$externalConnections, name=$name, additionalProperties=$additionalProperties}" - } - fun toBuilder() = Builder().from(this) companion object { @@ -281,7 +83,6 @@ private constructor( } /** A builder for [ItemUpdateParams]. */ - @NoAutoDetect class Builder internal constructor() { private var itemId: String? = null @@ -480,20 +281,227 @@ private constructor( ) } - @NoAutoDetect - class ExternalConnection - @JsonCreator + @JvmSynthetic internal fun _body(): Body = body + + fun _pathParam(index: Int): String = + when (index) { + 0 -> itemId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + /** + * A list of external connections to map an item to. Note that passing `null` will clear + * existing mappings. Orb requires that you pass the full list of mappings; this list will + * replace the existing item mappings. + */ + class Body private constructor( - @JsonProperty("external_connection_name") - @ExcludeMissing - private val externalConnectionName: JsonField = JsonMissing.of(), - @JsonProperty("external_entity_id") + private val externalConnections: JsonField>, + private val name: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("external_connections") + @ExcludeMissing + externalConnections: JsonField> = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(externalConnections, name, mutableMapOf()) + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun externalConnections(): Optional> = + Optional.ofNullable(externalConnections.getNullable("external_connections")) + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun name(): Optional = Optional.ofNullable(name.getNullable("name")) + + /** + * Returns the raw JSON value of [externalConnections]. + * + * Unlike [externalConnections], this method doesn't throw if the JSON field has an + * unexpected type. + */ + @JsonProperty("external_connections") @ExcludeMissing - private val externalEntityId: JsonField = JsonMissing.of(), + fun _externalConnections(): JsonField> = externalConnections + + /** + * Returns the raw JSON value of [name]. + * + * Unlike [name], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** Returns a mutable builder for constructing an instance of [Body]. */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var externalConnections: JsonField>? = null + private var name: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + externalConnections = body.externalConnections.map { it.toMutableList() } + name = body.name + additionalProperties = body.additionalProperties.toMutableMap() + } + + fun externalConnections(externalConnections: List?) = + externalConnections(JsonField.ofNullable(externalConnections)) + + /** + * Alias for calling [Builder.externalConnections] with + * `externalConnections.orElse(null)`. + */ + fun externalConnections(externalConnections: Optional>) = + externalConnections(externalConnections.getOrNull()) + + /** + * Sets [Builder.externalConnections] to an arbitrary JSON value. + * + * You should usually call [Builder.externalConnections] with a well-typed + * `List` value instead. This method is primarily for setting the + * field to an undocumented or not yet supported value. + */ + fun externalConnections(externalConnections: JsonField>) = + apply { + this.externalConnections = externalConnections.map { it.toMutableList() } + } + + /** + * Adds a single [ExternalConnection] to [externalConnections]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addExternalConnection(externalConnection: ExternalConnection) = apply { + externalConnections = + (externalConnections ?: JsonField.of(mutableListOf())).also { + checkKnown("externalConnections", it).add(externalConnection) + } + } + + fun name(name: String?) = name(JsonField.ofNullable(name)) + + /** Alias for calling [Builder.name] with `name.orElse(null)`. */ + fun name(name: Optional) = name(name.getOrNull()) + + /** + * Sets [Builder.name] to an arbitrary JSON value. + * + * You should usually call [Builder.name] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun name(name: JsonField) = apply { this.name = name } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + */ + fun build(): Body = + Body( + (externalConnections ?: JsonMissing.of()).map { it.toImmutable() }, + name, + additionalProperties.toMutableMap(), + ) + } + + private var validated: Boolean = false + + fun validate(): Body = apply { + if (validated) { + return@apply + } + + externalConnections().ifPresent { it.forEach { it.validate() } } + name() + validated = true + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Body && externalConnections == other.externalConnections && name == other.name && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(externalConnections, name, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{externalConnections=$externalConnections, name=$name, additionalProperties=$additionalProperties}" + } + + class ExternalConnection + private constructor( + private val externalConnectionName: JsonField, + private val externalEntityId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("external_connection_name") + @ExcludeMissing + externalConnectionName: JsonField = JsonMissing.of(), + @JsonProperty("external_entity_id") + @ExcludeMissing + externalEntityId: JsonField = JsonMissing.of(), + ) : this(externalConnectionName, externalEntityId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -527,21 +535,15 @@ private constructor( @ExcludeMissing fun _externalEntityId(): JsonField = externalEntityId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ExternalConnection = apply { - if (validated) { - return@apply - } - - externalConnectionName() - externalEntityId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -638,10 +640,22 @@ private constructor( ExternalConnection( checkRequired("externalConnectionName", externalConnectionName), checkRequired("externalEntityId", externalEntityId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): ExternalConnection = apply { + if (validated) { + return@apply + } + + externalConnectionName() + externalEntityId() + validated = true + } + class ExternalConnectionName @JsonCreator private constructor(private val value: JsonField) : Enum { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricCreateParams.kt index cfdd2c2a..52a0e3be 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricCreateParams.kt @@ -10,14 +10,12 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -117,33 +115,274 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [MetricCreateParams]. + * + * The following fields are required: + * ```java + * .description() + * .itemId() + * .name() + * .sql() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [MetricCreateParams]. */ + class Builder internal constructor() { + + private var body: Body.Builder = Body.builder() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from(metricCreateParams: MetricCreateParams) = apply { + body = metricCreateParams.body.toBuilder() + additionalHeaders = metricCreateParams.additionalHeaders.toBuilder() + additionalQueryParams = metricCreateParams.additionalQueryParams.toBuilder() + } + + /** A description of the metric. */ + fun description(description: String?) = apply { body.description(description) } + + /** Alias for calling [Builder.description] with `description.orElse(null)`. */ + fun description(description: Optional) = description(description.getOrNull()) + + /** + * Sets [Builder.description] to an arbitrary JSON value. + * + * You should usually call [Builder.description] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun description(description: JsonField) = apply { body.description(description) } + + /** The id of the item */ + fun itemId(itemId: String) = apply { body.itemId(itemId) } + + /** + * Sets [Builder.itemId] to an arbitrary JSON value. + * + * You should usually call [Builder.itemId] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. + */ + fun itemId(itemId: JsonField) = apply { body.itemId(itemId) } + + /** The name of the metric. */ + fun name(name: String) = apply { body.name(name) } + + /** + * Sets [Builder.name] to an arbitrary JSON value. + * + * You should usually call [Builder.name] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. + */ + fun name(name: JsonField) = apply { body.name(name) } + + /** A sql string defining the metric. */ + fun sql(sql: String) = apply { body.sql(sql) } + + /** + * Sets [Builder.sql] to an arbitrary JSON value. + * + * You should usually call [Builder.sql] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. + */ + fun sql(sql: JsonField) = apply { body.sql(sql) } + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. + */ + fun metadata(metadata: Metadata?) = apply { body.metadata(metadata) } + + /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ + fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) + + /** + * Sets [Builder.metadata] to an arbitrary JSON value. + * + * You should usually call [Builder.metadata] with a well-typed [Metadata] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun metadata(metadata: JsonField) = apply { body.metadata(metadata) } + + fun additionalBodyProperties(additionalBodyProperties: Map) = apply { + body.additionalProperties(additionalBodyProperties) + } + + fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { + body.putAdditionalProperty(key, value) + } + + fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = + apply { + body.putAllAdditionalProperties(additionalBodyProperties) + } + + fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + body.removeAllAdditionalProperties(keys) + } + + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) + } + + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } + + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } + + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) + } + + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } + + /** + * Returns an immutable instance of [MetricCreateParams]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .description() + * .itemId() + * .name() + * .sql() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): MetricCreateParams = + MetricCreateParams( + body.build(), + additionalHeaders.build(), + additionalQueryParams.build(), + ) + } + @JvmSynthetic internal fun _body(): Body = body override fun _headers(): Headers = additionalHeaders override fun _queryParams(): QueryParams = additionalQueryParams - @NoAutoDetect class Body - @JsonCreator private constructor( - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("sql") @ExcludeMissing private val sql: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val description: JsonField, + private val itemId: JsonField, + private val name: JsonField, + private val sql: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("item_id") @ExcludeMissing itemId: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("sql") @ExcludeMissing sql: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this(description, itemId, name, sql, metadata, mutableMapOf()) + /** * A description of the metric. * @@ -224,28 +463,19 @@ private constructor( */ @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) - private var validated: Boolean = false + fun toBuilder() = Builder().from(this) - fun validate(): Body = apply { - if (validated) { - return@apply - } - - description() - itemId() - name() - sql() - metadata().ifPresent { it.validate() } - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { + companion object { /** * Returns a mutable builder for constructing an instance of [Body]. @@ -394,10 +624,25 @@ private constructor( checkRequired("name", name), checkRequired("sql", sql), metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Body = apply { + if (validated) { + return@apply + } + + description() + itemId() + name() + sql() + metadata().ifPresent { it.validate() } + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -416,272 +661,25 @@ private constructor( "Body{description=$description, itemId=$itemId, name=$name, sql=$sql, metadata=$metadata, additionalProperties=$additionalProperties}" } - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of [MetricCreateParams]. - * - * The following fields are required: - * ```java - * .description() - * .itemId() - * .name() - * .sql() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [MetricCreateParams]. */ - @NoAutoDetect - class Builder internal constructor() { - - private var body: Body.Builder = Body.builder() - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() - - @JvmSynthetic - internal fun from(metricCreateParams: MetricCreateParams) = apply { - body = metricCreateParams.body.toBuilder() - additionalHeaders = metricCreateParams.additionalHeaders.toBuilder() - additionalQueryParams = metricCreateParams.additionalQueryParams.toBuilder() - } - - /** A description of the metric. */ - fun description(description: String?) = apply { body.description(description) } - - /** Alias for calling [Builder.description] with `description.orElse(null)`. */ - fun description(description: Optional) = description(description.getOrNull()) - - /** - * Sets [Builder.description] to an arbitrary JSON value. - * - * You should usually call [Builder.description] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun description(description: JsonField) = apply { body.description(description) } - - /** The id of the item */ - fun itemId(itemId: String) = apply { body.itemId(itemId) } - - /** - * Sets [Builder.itemId] to an arbitrary JSON value. - * - * You should usually call [Builder.itemId] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun itemId(itemId: JsonField) = apply { body.itemId(itemId) } - - /** The name of the metric. */ - fun name(name: String) = apply { body.name(name) } - - /** - * Sets [Builder.name] to an arbitrary JSON value. - * - * You should usually call [Builder.name] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun name(name: JsonField) = apply { body.name(name) } - - /** A sql string defining the metric. */ - fun sql(sql: String) = apply { body.sql(sql) } - - /** - * Sets [Builder.sql] to an arbitrary JSON value. - * - * You should usually call [Builder.sql] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun sql(sql: JsonField) = apply { body.sql(sql) } - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. - */ - fun metadata(metadata: Metadata?) = apply { body.metadata(metadata) } - - /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ - fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) - - /** - * Sets [Builder.metadata] to an arbitrary JSON value. - * - * You should usually call [Builder.metadata] with a well-typed [Metadata] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun metadata(metadata: JsonField) = apply { body.metadata(metadata) } - - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { - body.additionalProperties(additionalBodyProperties) - } - - fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - body.putAdditionalProperty(key, value) - } - - fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = - apply { - body.putAllAdditionalProperties(additionalBodyProperties) - } - - fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } - - fun removeAllAdditionalBodyProperties(keys: Set) = apply { - body.removeAllAdditionalProperties(keys) - } - - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } - - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } - - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } - - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } - - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } - - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } - - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } - - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } - - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } - - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } - - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } - - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } - - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } - - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } - - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } - - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) - } - - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } - - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } - - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) - } - - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } - - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } - - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) - } - - /** - * Returns an immutable instance of [MetricCreateParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .description() - * .itemId() - * .name() - * .sql() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): MetricCreateParams = - MetricCreateParams( - body.build(), - additionalHeaders.build(), - additionalQueryParams.build(), - ) - } - /** * User-specified key/value pairs for the resource. Individual keys can be removed by setting * the value to `null`, and the entire metadata mapping can be cleared by setting `metadata` to * `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -725,7 +723,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricFetchParams.kt index 3bd1fef0..10e97ce0 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricFetchParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -26,16 +25,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> metricId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - fun toBuilder() = Builder().from(this) companion object { @@ -52,7 +41,6 @@ private constructor( } /** A builder for [MetricFetchParams]. */ - @NoAutoDetect class Builder internal constructor() { private var metricId: String? = null @@ -186,6 +174,16 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> metricId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricListPage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricListPage.kt index 5b43c3bb..d1fdbb10 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricListPage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricListPage.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.blocking.MetricService +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.stream.Stream @@ -84,17 +82,19 @@ private constructor( MetricListPage(metricsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -107,9 +107,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -178,7 +184,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricListPageAsync.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricListPageAsync.kt index 5234038c..d01f0883 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricListPageAsync.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricListPageAsync.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.async.MetricServiceAsync +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.concurrent.CompletableFuture @@ -86,17 +84,19 @@ private constructor( MetricListPageAsync(metricsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -109,9 +109,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -180,7 +186,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricListParams.kt index 17b5b84b..9f95368b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricListParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams @@ -49,29 +48,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - createdAtGt?.let { - put("created_at[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtGte?.let { - put("created_at[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtLt?.let { - put("created_at[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtLte?.let { - put("created_at[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - cursor?.let { put("cursor", it) } - limit?.let { put("limit", it.toString()) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -83,7 +59,6 @@ private constructor( } /** A builder for [MetricListParams]. */ - @NoAutoDetect class Builder internal constructor() { private var createdAtGt: OffsetDateTime? = null @@ -269,6 +244,29 @@ private constructor( ) } + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + createdAtGt?.let { + put("created_at[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtGte?.let { + put("created_at[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtLt?.let { + put("created_at[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtLte?.let { + put("created_at[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + cursor?.let { put("cursor", it) } + limit?.let { put("limit", it.toString()) } + putAll(additionalQueryParams) + } + .build() + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricUpdateParams.kt index d06cb3ac..d7e00d4d 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricUpdateParams.kt @@ -10,14 +10,12 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -59,145 +57,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - fun _pathParam(index: Int): String = - when (index) { - 0 -> metricId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) - - /** - * Returns the raw JSON value of [metadata]. - * - * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - metadata().ifPresent { it.validate() } - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** Returns a mutable builder for constructing an instance of [Body]. */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var metadata: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - metadata = body.metadata - additionalProperties = body.additionalProperties.toMutableMap() - } - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by - * setting `metadata` to `null`. - */ - fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) - - /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ - fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) - - /** - * Sets [Builder.metadata] to an arbitrary JSON value. - * - * You should usually call [Builder.metadata] with a well-typed [Metadata] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun metadata(metadata: JsonField) = apply { this.metadata = metadata } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - */ - fun build(): Body = Body(metadata, additionalProperties.toImmutable()) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && metadata == other.metadata && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(metadata, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{metadata=$metadata, additionalProperties=$additionalProperties}" - } - fun toBuilder() = Builder().from(this) companion object { @@ -214,7 +73,6 @@ private constructor( } /** A builder for [MetricUpdateParams]. */ - @NoAutoDetect class Builder internal constructor() { private var metricId: String? = null @@ -389,33 +247,173 @@ private constructor( ) } - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by setting - * the value to `null`, and the entire metadata mapping can be cleared by setting `metadata` to - * `null`. - */ - @NoAutoDetect - class Metadata - @JsonCreator + @JvmSynthetic internal fun _body(): Body = body + + fun _pathParam(index: Int): String = + when (index) { + 0 -> metricId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of() + ) : this(metadata, mutableMapOf()) + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) + + /** + * Returns the raw JSON value of [metadata]. + * + * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** Returns a mutable builder for constructing an instance of [Body]. */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var metadata: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + metadata = body.metadata + additionalProperties = body.additionalProperties.toMutableMap() + } + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by + * setting `metadata` to `null`. + */ + fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) + + /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ + fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) + + /** + * Sets [Builder.metadata] to an arbitrary JSON value. + * + * You should usually call [Builder.metadata] with a well-typed [Metadata] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun metadata(metadata: JsonField) = apply { this.metadata = metadata } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + */ + fun build(): Body = Body(metadata, additionalProperties.toMutableMap()) + } private var validated: Boolean = false - fun validate(): Metadata = apply { + fun validate(): Body = apply { if (validated) { return@apply } + metadata().ifPresent { it.validate() } validated = true } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Body && metadata == other.metadata && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(metadata, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{metadata=$metadata, additionalProperties=$additionalProperties}" + } + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by setting + * the value to `null`, and the entire metadata mapping can be cleared by setting `metadata` to + * `null`. + */ + class Metadata + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -458,7 +456,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PaginationMetadata.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PaginationMetadata.kt index 50d1910a..fb247bc2 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PaginationMetadata.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PaginationMetadata.kt @@ -10,28 +10,28 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class PaginationMetadata -@JsonCreator private constructor( - @JsonProperty("has_more") - @ExcludeMissing - private val hasMore: JsonField = JsonMissing.of(), - @JsonProperty("next_cursor") - @ExcludeMissing - private val nextCursor: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val hasMore: JsonField, + private val nextCursor: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("has_more") @ExcludeMissing hasMore: JsonField = JsonMissing.of(), + @JsonProperty("next_cursor") + @ExcludeMissing + nextCursor: JsonField = JsonMissing.of(), + ) : this(hasMore, nextCursor, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -58,21 +58,15 @@ private constructor( */ @JsonProperty("next_cursor") @ExcludeMissing fun _nextCursor(): JsonField = nextCursor + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PaginationMetadata = apply { - if (validated) { - return@apply - } - - hasMore() - nextCursor() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -164,10 +158,22 @@ private constructor( PaginationMetadata( checkRequired("hasMore", hasMore), checkRequired("nextCursor", nextCursor), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PaginationMetadata = apply { + if (validated) { + return@apply + } + + hasMore() + nextCursor() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PercentageDiscount.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PercentageDiscount.kt index 566a574b..8c043254 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PercentageDiscount.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PercentageDiscount.kt @@ -11,35 +11,38 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class PercentageDiscount -@JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val discountType: JsonField, + private val percentageDiscount: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("reason") @ExcludeMissing reason: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, discountType, percentageDiscount, reason, mutableMapOf()) + /** * List of price_ids that this discount applies to. For plan/plan phase discounts, this can be a * subset of prices. @@ -105,23 +108,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PercentageDiscount = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - discountType() - percentageDiscount() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -268,10 +263,24 @@ private constructor( checkRequired("discountType", discountType), checkRequired("percentageDiscount", percentageDiscount), reason, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PercentageDiscount = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + discountType() + percentageDiscount() + reason() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/Plan.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/Plan.kt index 272b0384..b4ae53fc 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/Plan.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/Plan.kt @@ -20,14 +20,13 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -37,81 +36,111 @@ import kotlin.jvm.optionals.getOrNull * a customer. Plans define the billing behavior of the subscription. You can see more about how to * configure prices in the [Price resource](/reference/price). */ -@NoAutoDetect class Plan -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustments") - @ExcludeMissing - private val adjustments: JsonField> = JsonMissing.of(), - @JsonProperty("base_plan") - @ExcludeMissing - private val basePlan: JsonField = JsonMissing.of(), - @JsonProperty("base_plan_id") - @ExcludeMissing - private val basePlanId: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("default_invoice_memo") - @ExcludeMissing - private val defaultInvoiceMemo: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_plan_id") - @ExcludeMissing - private val externalPlanId: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_currency") - @ExcludeMissing - private val invoicingCurrency: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("name") @ExcludeMissing private val name: JsonField = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("plan_phases") - @ExcludeMissing - private val planPhases: JsonField> = JsonMissing.of(), - @JsonProperty("prices") - @ExcludeMissing - private val prices: JsonField> = JsonMissing.of(), - @JsonProperty("product") - @ExcludeMissing - private val product: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("trial_config") - @ExcludeMissing - private val trialConfig: JsonField = JsonMissing.of(), - @JsonProperty("version") - @ExcludeMissing - private val version: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustments: JsonField>, + private val basePlan: JsonField, + private val basePlanId: JsonField, + private val createdAt: JsonField, + private val currency: JsonField, + private val defaultInvoiceMemo: JsonField, + private val description: JsonField, + private val discount: JsonField, + private val externalPlanId: JsonField, + private val invoicingCurrency: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val name: JsonField, + private val netTerms: JsonField, + private val planPhases: JsonField>, + private val prices: JsonField>, + private val product: JsonField, + private val status: JsonField, + private val trialConfig: JsonField, + private val version: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustments") + @ExcludeMissing + adjustments: JsonField> = JsonMissing.of(), + @JsonProperty("base_plan") @ExcludeMissing basePlan: JsonField = JsonMissing.of(), + @JsonProperty("base_plan_id") + @ExcludeMissing + basePlanId: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("currency") @ExcludeMissing currency: JsonField = JsonMissing.of(), + @JsonProperty("default_invoice_memo") + @ExcludeMissing + defaultInvoiceMemo: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("discount") @ExcludeMissing discount: JsonField = JsonMissing.of(), + @JsonProperty("external_plan_id") + @ExcludeMissing + externalPlanId: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_currency") + @ExcludeMissing + invoicingCurrency: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") @ExcludeMissing metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("plan_phases") + @ExcludeMissing + planPhases: JsonField> = JsonMissing.of(), + @JsonProperty("prices") @ExcludeMissing prices: JsonField> = JsonMissing.of(), + @JsonProperty("product") @ExcludeMissing product: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + @JsonProperty("trial_config") + @ExcludeMissing + trialConfig: JsonField = JsonMissing.of(), + @JsonProperty("version") @ExcludeMissing version: JsonField = JsonMissing.of(), + ) : this( + id, + adjustments, + basePlan, + basePlanId, + createdAt, + currency, + defaultInvoiceMemo, + description, + discount, + externalPlanId, + invoicingCurrency, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + name, + netTerms, + planPhases, + prices, + product, + status, + trialConfig, + version, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -481,43 +510,15 @@ private constructor( */ @JsonProperty("version") @ExcludeMissing fun _version(): JsonField = version + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Plan = apply { - if (validated) { - return@apply - } - - id() - adjustments().forEach { it.validate() } - basePlan().ifPresent { it.validate() } - basePlanId() - createdAt() - currency() - defaultInvoiceMemo() - description() - discount().ifPresent { it.validate() } - externalPlanId() - invoicingCurrency() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - name() - netTerms() - planPhases().ifPresent { it.forEach { it.validate() } } - prices().forEach { it.validate() } - product().validate() - status() - trialConfig().validate() - version() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1292,10 +1293,44 @@ private constructor( checkRequired("status", status), checkRequired("trialConfig", trialConfig), checkRequired("version", version), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Plan = apply { + if (validated) { + return@apply + } + + id() + adjustments().forEach { it.validate() } + basePlan().ifPresent { it.validate() } + basePlanId() + createdAt() + currency() + defaultInvoiceMemo() + description() + discount().ifPresent { it.validate() } + externalPlanId() + invoicingCurrency() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + name() + netTerms() + planPhases().ifPresent { it.forEach { it.validate() } } + prices().forEach { it.validate() } + product().validate() + status() + trialConfig().validate() + version() + validated = true + } + @JsonDeserialize(using = Adjustment.Deserializer::class) @JsonSerialize(using = Adjustment.Serializer::class) class Adjustment @@ -1571,35 +1606,50 @@ private constructor( } } - @NoAutoDetect class PlanPhaseUsageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + usageDiscount, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -1725,26 +1775,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseUsageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1980,10 +2019,27 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseUsageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + usageDiscount() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2103,35 +2159,48 @@ private constructor( "PlanPhaseUsageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, usageDiscount=$usageDiscount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseAmountDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") @ExcludeMissing reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amountDiscount, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2257,26 +2326,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseAmountDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amountDiscount() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2512,10 +2570,27 @@ private constructor( checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseAmountDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amountDiscount() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2635,35 +2710,48 @@ private constructor( "PlanPhaseAmountDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhasePercentageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val percentageDiscount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") @ExcludeMissing reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + percentageDiscount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2789,28 +2877,17 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) - private var validated: Boolean = false - - fun validate(): PlanPhasePercentageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - percentageDiscount() - planPhaseOrder() - reason() - validated = true - } - - fun toBuilder() = Builder().from(this) + fun toBuilder() = Builder().from(this) companion object { @@ -3044,10 +3121,27 @@ private constructor( checkRequired("percentageDiscount", percentageDiscount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhasePercentageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + percentageDiscount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3167,38 +3261,53 @@ private constructor( "PlanPhasePercentageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, percentageDiscount=$percentageDiscount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMinimumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val itemId: JsonField, + private val minimumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") @ExcludeMissing reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + itemId, + minimumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3340,27 +3449,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMinimumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - itemId() - minimumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3609,10 +3706,28 @@ private constructor( checkRequired("minimumAmount", minimumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMinimumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + itemId() + minimumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3732,35 +3847,48 @@ private constructor( "PlanPhaseMinimumAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, itemId=$itemId, minimumAmount=$minimumAmount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMaximumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val maximumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") @ExcludeMissing reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + maximumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3886,26 +4014,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMaximumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - maximumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4137,10 +4254,27 @@ private constructor( checkRequired("maximumAmount", maximumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMaximumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + maximumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4261,21 +4395,23 @@ private constructor( } } - @NoAutoDetect class BasePlan - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_plan_id") - @ExcludeMissing - private val externalPlanId: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalPlanId: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_plan_id") + @ExcludeMissing + externalPlanId: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, externalPlanId, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -4323,22 +4459,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BasePlan = apply { - if (validated) { - return@apply - } - - id() - externalPlanId() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4462,10 +4591,23 @@ private constructor( checkRequired("id", id), checkRequired("externalPlanId", externalPlanId), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BasePlan = apply { + if (validated) { + return@apply + } + + id() + externalPlanId() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -4484,20 +4626,23 @@ private constructor( "BasePlan{id=$id, externalPlanId=$externalPlanId, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, this * can be a subset of prices. @@ -4536,21 +4681,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4662,10 +4801,22 @@ private constructor( Maximum( checkRequired("appliesToPriceIds", appliesToPriceIds).map { it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -4689,27 +4840,20 @@ private constructor( * dictionary. Individual keys can be removed by setting the value to `null`, and the entire * metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4753,7 +4897,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -4773,20 +4927,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, this * can be a subset of prices. @@ -4825,21 +4982,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4951,10 +5102,22 @@ private constructor( Minimum( checkRequired("appliesToPriceIds", appliesToPriceIds).map { it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -4973,45 +5136,60 @@ private constructor( "Minimum{appliesToPriceIds=$appliesToPriceIds, minimumAmount=$minimumAmount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhase - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("description") - @ExcludeMissing - private val description: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("order") - @ExcludeMissing - private val order: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val description: JsonField, + private val discount: JsonField, + private val duration: JsonField, + private val durationUnit: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val name: JsonField, + private val order: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("description") + @ExcludeMissing + description: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("duration") @ExcludeMissing duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("order") @ExcludeMissing order: JsonField = JsonMissing.of(), + ) : this( + id, + description, + discount, + duration, + durationUnit, + maximum, + maximumAmount, + minimum, + minimumAmount, + name, + order, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -5175,30 +5353,15 @@ private constructor( */ @JsonProperty("order") @ExcludeMissing fun _order(): JsonField = order + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhase = apply { - if (validated) { - return@apply - } - - id() - description() - discount().ifPresent { it.validate() } - duration() - durationUnit() - maximum().ifPresent { it.validate() } - maximumAmount() - minimum().ifPresent { it.validate() } - minimumAmount() - name() - order() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5512,10 +5675,31 @@ private constructor( checkRequired("minimumAmount", minimumAmount), checkRequired("name", name), checkRequired("order", order), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhase = apply { + if (validated) { + return@apply + } + + id() + description() + discount().ifPresent { it.validate() } + duration() + durationUnit() + maximum().ifPresent { it.validate() } + maximumAmount() + minimum().ifPresent { it.validate() } + minimumAmount() + name() + order() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -5636,20 +5820,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -5690,21 +5877,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5822,10 +6003,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5844,20 +6037,23 @@ private constructor( "Maximum{appliesToPriceIds=$appliesToPriceIds, maximumAmount=$maximumAmount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -5898,21 +6094,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6030,10 +6220,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6070,21 +6272,23 @@ private constructor( "PlanPhase{id=$id, description=$description, discount=$discount, duration=$duration, durationUnit=$durationUnit, maximum=$maximum, maximumAmount=$maximumAmount, minimum=$minimum, minimumAmount=$minimumAmount, name=$name, order=$order, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Product - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val createdAt: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, createdAt, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -6126,22 +6330,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Product = apply { - if (validated) { - return@apply - } - - id() - createdAt() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6249,10 +6446,23 @@ private constructor( checkRequired("id", id), checkRequired("createdAt", createdAt), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Product = apply { + if (validated) { + return@apply + } + + id() + createdAt() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6374,20 +6584,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TrialConfig - @JsonCreator private constructor( - @JsonProperty("trial_period") - @ExcludeMissing - private val trialPeriod: JsonField = JsonMissing.of(), - @JsonProperty("trial_period_unit") - @ExcludeMissing - private val trialPeriodUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val trialPeriod: JsonField, + private val trialPeriodUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("trial_period") + @ExcludeMissing + trialPeriod: JsonField = JsonMissing.of(), + @JsonProperty("trial_period_unit") + @ExcludeMissing + trialPeriodUnit: JsonField = JsonMissing.of(), + ) : this(trialPeriod, trialPeriodUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -6420,21 +6633,15 @@ private constructor( @ExcludeMissing fun _trialPeriodUnit(): JsonField = trialPeriodUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TrialConfig = apply { - if (validated) { - return@apply - } - - trialPeriod() - trialPeriodUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6537,10 +6744,22 @@ private constructor( TrialConfig( checkRequired("trialPeriod", trialPeriod), checkRequired("trialPeriodUnit", trialPeriodUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): TrialConfig = apply { + if (validated) { + return@apply + } + + trialPeriod() + trialPeriodUnit() + validated = true + } + class TrialPeriodUnit @JsonCreator private constructor(private val value: JsonField) : Enum { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanCreateParams.kt index 254bbb2d..65bdf0f2 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanCreateParams.kt @@ -20,16 +20,15 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -170,44 +169,536 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [PlanCreateParams]. + * + * The following fields are required: + * ```java + * .currency() + * .name() + * .prices() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [PlanCreateParams]. */ + class Builder internal constructor() { + + private var body: Body.Builder = Body.builder() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from(planCreateParams: PlanCreateParams) = apply { + body = planCreateParams.body.toBuilder() + additionalHeaders = planCreateParams.additionalHeaders.toBuilder() + additionalQueryParams = planCreateParams.additionalQueryParams.toBuilder() + } + + /** An ISO 4217 currency string for invoices generated by subscriptions on this plan. */ + fun currency(currency: String) = apply { body.currency(currency) } + + /** + * Sets [Builder.currency] to an arbitrary JSON value. + * + * You should usually call [Builder.currency] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. + */ + fun currency(currency: JsonField) = apply { body.currency(currency) } + + fun name(name: String) = apply { body.name(name) } + + /** + * Sets [Builder.name] to an arbitrary JSON value. + * + * You should usually call [Builder.name] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. + */ + fun name(name: JsonField) = apply { body.name(name) } + + /** + * Prices for this plan. If the plan has phases, this includes prices across all phases of + * the plan. + */ + fun prices(prices: List) = apply { body.prices(prices) } + + /** + * Sets [Builder.prices] to an arbitrary JSON value. + * + * You should usually call [Builder.prices] with a well-typed `List` value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun prices(prices: JsonField>) = apply { body.prices(prices) } + + /** + * Adds a single [Price] to [prices]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addPrice(price: Price) = apply { body.addPrice(price) } + + /** Alias for calling [addPrice] with `Price.ofNewPlanUnit(newPlanUnit)`. */ + fun addPrice(newPlanUnit: Price.NewPlanUnitPrice) = apply { body.addPrice(newPlanUnit) } + + /** Alias for calling [addPrice] with `Price.ofNewPlanPackage(newPlanPackage)`. */ + fun addPrice(newPlanPackage: Price.NewPlanPackagePrice) = apply { + body.addPrice(newPlanPackage) + } + + /** Alias for calling [addPrice] with `Price.ofNewPlanMatrix(newPlanMatrix)`. */ + fun addPrice(newPlanMatrix: Price.NewPlanMatrixPrice) = apply { + body.addPrice(newPlanMatrix) + } + + /** Alias for calling [addPrice] with `Price.ofNewPlanTiered(newPlanTiered)`. */ + fun addPrice(newPlanTiered: Price.NewPlanTieredPrice) = apply { + body.addPrice(newPlanTiered) + } + + /** Alias for calling [addPrice] with `Price.ofNewPlanTieredBps(newPlanTieredBps)`. */ + fun addPrice(newPlanTieredBps: Price.NewPlanTieredBpsPrice) = apply { + body.addPrice(newPlanTieredBps) + } + + /** Alias for calling [addPrice] with `Price.ofNewPlanBps(newPlanBps)`. */ + fun addPrice(newPlanBps: Price.NewPlanBpsPrice) = apply { body.addPrice(newPlanBps) } + + /** Alias for calling [addPrice] with `Price.ofNewPlanBulkBps(newPlanBulkBps)`. */ + fun addPrice(newPlanBulkBps: Price.NewPlanBulkBpsPrice) = apply { + body.addPrice(newPlanBulkBps) + } + + /** Alias for calling [addPrice] with `Price.ofNewPlanBulk(newPlanBulk)`. */ + fun addPrice(newPlanBulk: Price.NewPlanBulkPrice) = apply { body.addPrice(newPlanBulk) } + + /** + * Alias for calling [addPrice] with + * `Price.ofNewPlanThresholdTotalAmount(newPlanThresholdTotalAmount)`. + */ + fun addPrice(newPlanThresholdTotalAmount: Price.NewPlanThresholdTotalAmountPrice) = apply { + body.addPrice(newPlanThresholdTotalAmount) + } + + /** + * Alias for calling [addPrice] with `Price.ofNewPlanTieredPackage(newPlanTieredPackage)`. + */ + fun addPrice(newPlanTieredPackage: Price.NewPlanTieredPackagePrice) = apply { + body.addPrice(newPlanTieredPackage) + } + + /** + * Alias for calling [addPrice] with + * `Price.ofNewPlanTieredWithMinimum(newPlanTieredWithMinimum)`. + */ + fun addPrice(newPlanTieredWithMinimum: Price.NewPlanTieredWithMinimumPrice) = apply { + body.addPrice(newPlanTieredWithMinimum) + } + + /** + * Alias for calling [addPrice] with + * `Price.ofNewPlanUnitWithPercent(newPlanUnitWithPercent)`. + */ + fun addPrice(newPlanUnitWithPercent: Price.NewPlanUnitWithPercentPrice) = apply { + body.addPrice(newPlanUnitWithPercent) + } + + /** + * Alias for calling [addPrice] with + * `Price.ofNewPlanPackageWithAllocation(newPlanPackageWithAllocation)`. + */ + fun addPrice(newPlanPackageWithAllocation: Price.NewPlanPackageWithAllocationPrice) = + apply { + body.addPrice(newPlanPackageWithAllocation) + } + + /** + * Alias for calling [addPrice] with + * `Price.ofNewPlanTierWithProration(newPlanTierWithProration)`. + */ + fun addPrice(newPlanTierWithProration: Price.NewPlanTierWithProrationPrice) = apply { + body.addPrice(newPlanTierWithProration) + } + + /** + * Alias for calling [addPrice] with + * `Price.ofNewPlanUnitWithProration(newPlanUnitWithProration)`. + */ + fun addPrice(newPlanUnitWithProration: Price.NewPlanUnitWithProrationPrice) = apply { + body.addPrice(newPlanUnitWithProration) + } + + /** + * Alias for calling [addPrice] with + * `Price.ofNewPlanGroupedAllocation(newPlanGroupedAllocation)`. + */ + fun addPrice(newPlanGroupedAllocation: Price.NewPlanGroupedAllocationPrice) = apply { + body.addPrice(newPlanGroupedAllocation) + } + + /** + * Alias for calling [addPrice] with + * `Price.ofNewPlanGroupedWithProratedMinimum(newPlanGroupedWithProratedMinimum)`. + */ + fun addPrice( + newPlanGroupedWithProratedMinimum: Price.NewPlanGroupedWithProratedMinimumPrice + ) = apply { body.addPrice(newPlanGroupedWithProratedMinimum) } + + /** + * Alias for calling [addPrice] with + * `Price.ofNewPlanGroupedWithMeteredMinimum(newPlanGroupedWithMeteredMinimum)`. + */ + fun addPrice( + newPlanGroupedWithMeteredMinimum: Price.NewPlanGroupedWithMeteredMinimumPrice + ) = apply { body.addPrice(newPlanGroupedWithMeteredMinimum) } + + /** + * Alias for calling [addPrice] with + * `Price.ofNewPlanMatrixWithDisplayName(newPlanMatrixWithDisplayName)`. + */ + fun addPrice(newPlanMatrixWithDisplayName: Price.NewPlanMatrixWithDisplayNamePrice) = + apply { + body.addPrice(newPlanMatrixWithDisplayName) + } + + /** + * Alias for calling [addPrice] with + * `Price.ofNewPlanBulkWithProration(newPlanBulkWithProration)`. + */ + fun addPrice(newPlanBulkWithProration: Price.NewPlanBulkWithProrationPrice) = apply { + body.addPrice(newPlanBulkWithProration) + } + + /** + * Alias for calling [addPrice] with + * `Price.ofNewPlanGroupedTieredPackage(newPlanGroupedTieredPackage)`. + */ + fun addPrice(newPlanGroupedTieredPackage: Price.NewPlanGroupedTieredPackagePrice) = apply { + body.addPrice(newPlanGroupedTieredPackage) + } + + /** + * Alias for calling [addPrice] with + * `Price.ofNewPlanMaxGroupTieredPackage(newPlanMaxGroupTieredPackage)`. + */ + fun addPrice(newPlanMaxGroupTieredPackage: Price.NewPlanMaxGroupTieredPackagePrice) = + apply { + body.addPrice(newPlanMaxGroupTieredPackage) + } + + /** + * Alias for calling [addPrice] with + * `Price.ofNewPlanScalableMatrixWithUnitPricing(newPlanScalableMatrixWithUnitPricing)`. + */ + fun addPrice( + newPlanScalableMatrixWithUnitPricing: Price.NewPlanScalableMatrixWithUnitPricingPrice + ) = apply { body.addPrice(newPlanScalableMatrixWithUnitPricing) } + + /** + * Alias for calling [addPrice] with + * `Price.ofNewPlanScalableMatrixWithTieredPricing(newPlanScalableMatrixWithTieredPricing)`. + */ + fun addPrice( + newPlanScalableMatrixWithTieredPricing: + Price.NewPlanScalableMatrixWithTieredPricingPrice + ) = apply { body.addPrice(newPlanScalableMatrixWithTieredPricing) } + + /** + * Alias for calling [addPrice] with + * `Price.ofNewPlanCumulativeGroupedBulk(newPlanCumulativeGroupedBulk)`. + */ + fun addPrice(newPlanCumulativeGroupedBulk: Price.NewPlanCumulativeGroupedBulkPrice) = + apply { + body.addPrice(newPlanCumulativeGroupedBulk) + } + + /** Free-form text which is available on the invoice PDF and the Orb invoice portal. */ + fun defaultInvoiceMemo(defaultInvoiceMemo: String?) = apply { + body.defaultInvoiceMemo(defaultInvoiceMemo) + } + + /** + * Alias for calling [Builder.defaultInvoiceMemo] with `defaultInvoiceMemo.orElse(null)`. + */ + fun defaultInvoiceMemo(defaultInvoiceMemo: Optional) = + defaultInvoiceMemo(defaultInvoiceMemo.getOrNull()) + + /** + * Sets [Builder.defaultInvoiceMemo] to an arbitrary JSON value. + * + * You should usually call [Builder.defaultInvoiceMemo] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun defaultInvoiceMemo(defaultInvoiceMemo: JsonField) = apply { + body.defaultInvoiceMemo(defaultInvoiceMemo) + } + + fun externalPlanId(externalPlanId: String?) = apply { body.externalPlanId(externalPlanId) } + + /** Alias for calling [Builder.externalPlanId] with `externalPlanId.orElse(null)`. */ + fun externalPlanId(externalPlanId: Optional) = + externalPlanId(externalPlanId.getOrNull()) + + /** + * Sets [Builder.externalPlanId] to an arbitrary JSON value. + * + * You should usually call [Builder.externalPlanId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun externalPlanId(externalPlanId: JsonField) = apply { + body.externalPlanId(externalPlanId) + } + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. + */ + fun metadata(metadata: Metadata?) = apply { body.metadata(metadata) } + + /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ + fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) + + /** + * Sets [Builder.metadata] to an arbitrary JSON value. + * + * You should usually call [Builder.metadata] with a well-typed [Metadata] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. + */ + fun metadata(metadata: JsonField) = apply { body.metadata(metadata) } + + /** + * The net terms determines the difference between the invoice date and the issue date for + * the invoice. If you intend the invoice to be due on issue, set this to 0. + */ + fun netTerms(netTerms: Long?) = apply { body.netTerms(netTerms) } + + /** + * Alias for [Builder.netTerms]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun netTerms(netTerms: Long) = netTerms(netTerms as Long?) + + /** Alias for calling [Builder.netTerms] with `netTerms.orElse(null)`. */ + fun netTerms(netTerms: Optional) = netTerms(netTerms.getOrNull()) + + /** + * Sets [Builder.netTerms] to an arbitrary JSON value. + * + * You should usually call [Builder.netTerms] with a well-typed [Long] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. + */ + fun netTerms(netTerms: JsonField) = apply { body.netTerms(netTerms) } + + /** + * The status of the plan to create (either active or draft). If not specified, this + * defaults to active. + */ + fun status(status: Status) = apply { body.status(status) } + + /** + * Sets [Builder.status] to an arbitrary JSON value. + * + * You should usually call [Builder.status] with a well-typed [Status] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. + */ + fun status(status: JsonField) = apply { body.status(status) } + + fun additionalBodyProperties(additionalBodyProperties: Map) = apply { + body.additionalProperties(additionalBodyProperties) + } + + fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { + body.putAdditionalProperty(key, value) + } + + fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = + apply { + body.putAllAdditionalProperties(additionalBodyProperties) + } + + fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + body.removeAllAdditionalProperties(keys) + } + + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) + } + + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } + + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } + + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) + } + + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } + + /** + * Returns an immutable instance of [PlanCreateParams]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .currency() + * .name() + * .prices() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): PlanCreateParams = + PlanCreateParams(body.build(), additionalHeaders.build(), additionalQueryParams.build()) + } + @JvmSynthetic internal fun _body(): Body = body override fun _headers(): Headers = additionalHeaders override fun _queryParams(): QueryParams = additionalQueryParams - @NoAutoDetect class Body - @JsonCreator private constructor( - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("prices") - @ExcludeMissing - private val prices: JsonField> = JsonMissing.of(), - @JsonProperty("default_invoice_memo") - @ExcludeMissing - private val defaultInvoiceMemo: JsonField = JsonMissing.of(), - @JsonProperty("external_plan_id") - @ExcludeMissing - private val externalPlanId: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val currency: JsonField, + private val name: JsonField, + private val prices: JsonField>, + private val defaultInvoiceMemo: JsonField, + private val externalPlanId: JsonField, + private val metadata: JsonField, + private val netTerms: JsonField, + private val status: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("prices") + @ExcludeMissing + prices: JsonField> = JsonMissing.of(), + @JsonProperty("default_invoice_memo") + @ExcludeMissing + defaultInvoiceMemo: JsonField = JsonMissing.of(), + @JsonProperty("external_plan_id") + @ExcludeMissing + externalPlanId: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + ) : this( + currency, + name, + prices, + defaultInvoiceMemo, + externalPlanId, + metadata, + netTerms, + status, + mutableMapOf(), + ) + /** * An ISO 4217 currency string for invoices generated by subscriptions on this plan. * @@ -337,31 +828,19 @@ private constructor( */ @JsonProperty("status") @ExcludeMissing fun _status(): JsonField = status + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) - private var validated: Boolean = false + fun toBuilder() = Builder().from(this) - fun validate(): Body = apply { - if (validated) { - return@apply - } - - currency() - name() - prices().forEach { it.validate() } - defaultInvoiceMemo() - externalPlanId() - metadata().ifPresent { it.validate() } - netTerms() - status() - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { + companion object { /** * Returns a mutable builder for constructing an instance of [Body]. @@ -575,697 +1054,235 @@ private constructor( fun addPrice(newPlanBulkWithProration: Price.NewPlanBulkWithProrationPrice) = addPrice(Price.ofNewPlanBulkWithProration(newPlanBulkWithProration)) - /** - * Alias for calling [addPrice] with - * `Price.ofNewPlanGroupedTieredPackage(newPlanGroupedTieredPackage)`. - */ - fun addPrice(newPlanGroupedTieredPackage: Price.NewPlanGroupedTieredPackagePrice) = - addPrice(Price.ofNewPlanGroupedTieredPackage(newPlanGroupedTieredPackage)) - - /** - * Alias for calling [addPrice] with - * `Price.ofNewPlanMaxGroupTieredPackage(newPlanMaxGroupTieredPackage)`. - */ - fun addPrice(newPlanMaxGroupTieredPackage: Price.NewPlanMaxGroupTieredPackagePrice) = - addPrice(Price.ofNewPlanMaxGroupTieredPackage(newPlanMaxGroupTieredPackage)) - - /** - * Alias for calling [addPrice] with - * `Price.ofNewPlanScalableMatrixWithUnitPricing(newPlanScalableMatrixWithUnitPricing)`. - */ - fun addPrice( - newPlanScalableMatrixWithUnitPricing: - Price.NewPlanScalableMatrixWithUnitPricingPrice - ) = - addPrice( - Price.ofNewPlanScalableMatrixWithUnitPricing( - newPlanScalableMatrixWithUnitPricing - ) - ) - - /** - * Alias for calling [addPrice] with - * `Price.ofNewPlanScalableMatrixWithTieredPricing(newPlanScalableMatrixWithTieredPricing)`. - */ - fun addPrice( - newPlanScalableMatrixWithTieredPricing: - Price.NewPlanScalableMatrixWithTieredPricingPrice - ) = - addPrice( - Price.ofNewPlanScalableMatrixWithTieredPricing( - newPlanScalableMatrixWithTieredPricing - ) - ) - - /** - * Alias for calling [addPrice] with - * `Price.ofNewPlanCumulativeGroupedBulk(newPlanCumulativeGroupedBulk)`. - */ - fun addPrice(newPlanCumulativeGroupedBulk: Price.NewPlanCumulativeGroupedBulkPrice) = - addPrice(Price.ofNewPlanCumulativeGroupedBulk(newPlanCumulativeGroupedBulk)) - - /** Free-form text which is available on the invoice PDF and the Orb invoice portal. */ - fun defaultInvoiceMemo(defaultInvoiceMemo: String?) = - defaultInvoiceMemo(JsonField.ofNullable(defaultInvoiceMemo)) - - /** - * Alias for calling [Builder.defaultInvoiceMemo] with - * `defaultInvoiceMemo.orElse(null)`. - */ - fun defaultInvoiceMemo(defaultInvoiceMemo: Optional) = - defaultInvoiceMemo(defaultInvoiceMemo.getOrNull()) - - /** - * Sets [Builder.defaultInvoiceMemo] to an arbitrary JSON value. - * - * You should usually call [Builder.defaultInvoiceMemo] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun defaultInvoiceMemo(defaultInvoiceMemo: JsonField) = apply { - this.defaultInvoiceMemo = defaultInvoiceMemo - } - - fun externalPlanId(externalPlanId: String?) = - externalPlanId(JsonField.ofNullable(externalPlanId)) - - /** Alias for calling [Builder.externalPlanId] with `externalPlanId.orElse(null)`. */ - fun externalPlanId(externalPlanId: Optional) = - externalPlanId(externalPlanId.getOrNull()) - - /** - * Sets [Builder.externalPlanId] to an arbitrary JSON value. - * - * You should usually call [Builder.externalPlanId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun externalPlanId(externalPlanId: JsonField) = apply { - this.externalPlanId = externalPlanId - } - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by - * setting `metadata` to `null`. - */ - fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) - - /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ - fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) - - /** - * Sets [Builder.metadata] to an arbitrary JSON value. - * - * You should usually call [Builder.metadata] with a well-typed [Metadata] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun metadata(metadata: JsonField) = apply { this.metadata = metadata } - - /** - * The net terms determines the difference between the invoice date and the issue date - * for the invoice. If you intend the invoice to be due on issue, set this to 0. - */ - fun netTerms(netTerms: Long?) = netTerms(JsonField.ofNullable(netTerms)) - - /** - * Alias for [Builder.netTerms]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun netTerms(netTerms: Long) = netTerms(netTerms as Long?) - - /** Alias for calling [Builder.netTerms] with `netTerms.orElse(null)`. */ - fun netTerms(netTerms: Optional) = netTerms(netTerms.getOrNull()) - - /** - * Sets [Builder.netTerms] to an arbitrary JSON value. - * - * You should usually call [Builder.netTerms] with a well-typed [Long] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun netTerms(netTerms: JsonField) = apply { this.netTerms = netTerms } - - /** - * The status of the plan to create (either active or draft). If not specified, this - * defaults to active. - */ - fun status(status: Status) = status(JsonField.of(status)) - - /** - * Sets [Builder.status] to an arbitrary JSON value. - * - * You should usually call [Builder.status] with a well-typed [Status] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun status(status: JsonField) = apply { this.status = status } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .currency() - * .name() - * .prices() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body( - checkRequired("currency", currency), - checkRequired("name", name), - checkRequired("prices", prices).map { it.toImmutable() }, - defaultInvoiceMemo, - externalPlanId, - metadata, - netTerms, - status, - additionalProperties.toImmutable(), - ) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && currency == other.currency && name == other.name && prices == other.prices && defaultInvoiceMemo == other.defaultInvoiceMemo && externalPlanId == other.externalPlanId && metadata == other.metadata && netTerms == other.netTerms && status == other.status && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(currency, name, prices, defaultInvoiceMemo, externalPlanId, metadata, netTerms, status, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{currency=$currency, name=$name, prices=$prices, defaultInvoiceMemo=$defaultInvoiceMemo, externalPlanId=$externalPlanId, metadata=$metadata, netTerms=$netTerms, status=$status, additionalProperties=$additionalProperties}" - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of [PlanCreateParams]. - * - * The following fields are required: - * ```java - * .currency() - * .name() - * .prices() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [PlanCreateParams]. */ - @NoAutoDetect - class Builder internal constructor() { - - private var body: Body.Builder = Body.builder() - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() - - @JvmSynthetic - internal fun from(planCreateParams: PlanCreateParams) = apply { - body = planCreateParams.body.toBuilder() - additionalHeaders = planCreateParams.additionalHeaders.toBuilder() - additionalQueryParams = planCreateParams.additionalQueryParams.toBuilder() - } - - /** An ISO 4217 currency string for invoices generated by subscriptions on this plan. */ - fun currency(currency: String) = apply { body.currency(currency) } - - /** - * Sets [Builder.currency] to an arbitrary JSON value. - * - * You should usually call [Builder.currency] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun currency(currency: JsonField) = apply { body.currency(currency) } - - fun name(name: String) = apply { body.name(name) } - - /** - * Sets [Builder.name] to an arbitrary JSON value. - * - * You should usually call [Builder.name] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun name(name: JsonField) = apply { body.name(name) } - - /** - * Prices for this plan. If the plan has phases, this includes prices across all phases of - * the plan. - */ - fun prices(prices: List) = apply { body.prices(prices) } - - /** - * Sets [Builder.prices] to an arbitrary JSON value. - * - * You should usually call [Builder.prices] with a well-typed `List` value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun prices(prices: JsonField>) = apply { body.prices(prices) } - - /** - * Adds a single [Price] to [prices]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addPrice(price: Price) = apply { body.addPrice(price) } - - /** Alias for calling [addPrice] with `Price.ofNewPlanUnit(newPlanUnit)`. */ - fun addPrice(newPlanUnit: Price.NewPlanUnitPrice) = apply { body.addPrice(newPlanUnit) } - - /** Alias for calling [addPrice] with `Price.ofNewPlanPackage(newPlanPackage)`. */ - fun addPrice(newPlanPackage: Price.NewPlanPackagePrice) = apply { - body.addPrice(newPlanPackage) - } - - /** Alias for calling [addPrice] with `Price.ofNewPlanMatrix(newPlanMatrix)`. */ - fun addPrice(newPlanMatrix: Price.NewPlanMatrixPrice) = apply { - body.addPrice(newPlanMatrix) - } - - /** Alias for calling [addPrice] with `Price.ofNewPlanTiered(newPlanTiered)`. */ - fun addPrice(newPlanTiered: Price.NewPlanTieredPrice) = apply { - body.addPrice(newPlanTiered) - } - - /** Alias for calling [addPrice] with `Price.ofNewPlanTieredBps(newPlanTieredBps)`. */ - fun addPrice(newPlanTieredBps: Price.NewPlanTieredBpsPrice) = apply { - body.addPrice(newPlanTieredBps) - } - - /** Alias for calling [addPrice] with `Price.ofNewPlanBps(newPlanBps)`. */ - fun addPrice(newPlanBps: Price.NewPlanBpsPrice) = apply { body.addPrice(newPlanBps) } - - /** Alias for calling [addPrice] with `Price.ofNewPlanBulkBps(newPlanBulkBps)`. */ - fun addPrice(newPlanBulkBps: Price.NewPlanBulkBpsPrice) = apply { - body.addPrice(newPlanBulkBps) - } - - /** Alias for calling [addPrice] with `Price.ofNewPlanBulk(newPlanBulk)`. */ - fun addPrice(newPlanBulk: Price.NewPlanBulkPrice) = apply { body.addPrice(newPlanBulk) } - - /** - * Alias for calling [addPrice] with - * `Price.ofNewPlanThresholdTotalAmount(newPlanThresholdTotalAmount)`. - */ - fun addPrice(newPlanThresholdTotalAmount: Price.NewPlanThresholdTotalAmountPrice) = apply { - body.addPrice(newPlanThresholdTotalAmount) - } - - /** - * Alias for calling [addPrice] with `Price.ofNewPlanTieredPackage(newPlanTieredPackage)`. - */ - fun addPrice(newPlanTieredPackage: Price.NewPlanTieredPackagePrice) = apply { - body.addPrice(newPlanTieredPackage) - } - - /** - * Alias for calling [addPrice] with - * `Price.ofNewPlanTieredWithMinimum(newPlanTieredWithMinimum)`. - */ - fun addPrice(newPlanTieredWithMinimum: Price.NewPlanTieredWithMinimumPrice) = apply { - body.addPrice(newPlanTieredWithMinimum) - } - - /** - * Alias for calling [addPrice] with - * `Price.ofNewPlanUnitWithPercent(newPlanUnitWithPercent)`. - */ - fun addPrice(newPlanUnitWithPercent: Price.NewPlanUnitWithPercentPrice) = apply { - body.addPrice(newPlanUnitWithPercent) - } - - /** - * Alias for calling [addPrice] with - * `Price.ofNewPlanPackageWithAllocation(newPlanPackageWithAllocation)`. - */ - fun addPrice(newPlanPackageWithAllocation: Price.NewPlanPackageWithAllocationPrice) = - apply { - body.addPrice(newPlanPackageWithAllocation) - } - - /** - * Alias for calling [addPrice] with - * `Price.ofNewPlanTierWithProration(newPlanTierWithProration)`. - */ - fun addPrice(newPlanTierWithProration: Price.NewPlanTierWithProrationPrice) = apply { - body.addPrice(newPlanTierWithProration) - } - - /** - * Alias for calling [addPrice] with - * `Price.ofNewPlanUnitWithProration(newPlanUnitWithProration)`. - */ - fun addPrice(newPlanUnitWithProration: Price.NewPlanUnitWithProrationPrice) = apply { - body.addPrice(newPlanUnitWithProration) - } - - /** - * Alias for calling [addPrice] with - * `Price.ofNewPlanGroupedAllocation(newPlanGroupedAllocation)`. - */ - fun addPrice(newPlanGroupedAllocation: Price.NewPlanGroupedAllocationPrice) = apply { - body.addPrice(newPlanGroupedAllocation) - } - - /** - * Alias for calling [addPrice] with - * `Price.ofNewPlanGroupedWithProratedMinimum(newPlanGroupedWithProratedMinimum)`. - */ - fun addPrice( - newPlanGroupedWithProratedMinimum: Price.NewPlanGroupedWithProratedMinimumPrice - ) = apply { body.addPrice(newPlanGroupedWithProratedMinimum) } - - /** - * Alias for calling [addPrice] with - * `Price.ofNewPlanGroupedWithMeteredMinimum(newPlanGroupedWithMeteredMinimum)`. - */ - fun addPrice( - newPlanGroupedWithMeteredMinimum: Price.NewPlanGroupedWithMeteredMinimumPrice - ) = apply { body.addPrice(newPlanGroupedWithMeteredMinimum) } - - /** - * Alias for calling [addPrice] with - * `Price.ofNewPlanMatrixWithDisplayName(newPlanMatrixWithDisplayName)`. - */ - fun addPrice(newPlanMatrixWithDisplayName: Price.NewPlanMatrixWithDisplayNamePrice) = - apply { - body.addPrice(newPlanMatrixWithDisplayName) - } - - /** - * Alias for calling [addPrice] with - * `Price.ofNewPlanBulkWithProration(newPlanBulkWithProration)`. - */ - fun addPrice(newPlanBulkWithProration: Price.NewPlanBulkWithProrationPrice) = apply { - body.addPrice(newPlanBulkWithProration) - } - - /** - * Alias for calling [addPrice] with - * `Price.ofNewPlanGroupedTieredPackage(newPlanGroupedTieredPackage)`. - */ - fun addPrice(newPlanGroupedTieredPackage: Price.NewPlanGroupedTieredPackagePrice) = apply { - body.addPrice(newPlanGroupedTieredPackage) - } - - /** - * Alias for calling [addPrice] with - * `Price.ofNewPlanMaxGroupTieredPackage(newPlanMaxGroupTieredPackage)`. - */ - fun addPrice(newPlanMaxGroupTieredPackage: Price.NewPlanMaxGroupTieredPackagePrice) = - apply { - body.addPrice(newPlanMaxGroupTieredPackage) - } - - /** - * Alias for calling [addPrice] with - * `Price.ofNewPlanScalableMatrixWithUnitPricing(newPlanScalableMatrixWithUnitPricing)`. - */ - fun addPrice( - newPlanScalableMatrixWithUnitPricing: Price.NewPlanScalableMatrixWithUnitPricingPrice - ) = apply { body.addPrice(newPlanScalableMatrixWithUnitPricing) } - - /** - * Alias for calling [addPrice] with - * `Price.ofNewPlanScalableMatrixWithTieredPricing(newPlanScalableMatrixWithTieredPricing)`. - */ - fun addPrice( - newPlanScalableMatrixWithTieredPricing: - Price.NewPlanScalableMatrixWithTieredPricingPrice - ) = apply { body.addPrice(newPlanScalableMatrixWithTieredPricing) } - - /** - * Alias for calling [addPrice] with - * `Price.ofNewPlanCumulativeGroupedBulk(newPlanCumulativeGroupedBulk)`. - */ - fun addPrice(newPlanCumulativeGroupedBulk: Price.NewPlanCumulativeGroupedBulkPrice) = - apply { - body.addPrice(newPlanCumulativeGroupedBulk) - } - - /** Free-form text which is available on the invoice PDF and the Orb invoice portal. */ - fun defaultInvoiceMemo(defaultInvoiceMemo: String?) = apply { - body.defaultInvoiceMemo(defaultInvoiceMemo) - } - - /** - * Alias for calling [Builder.defaultInvoiceMemo] with `defaultInvoiceMemo.orElse(null)`. - */ - fun defaultInvoiceMemo(defaultInvoiceMemo: Optional) = - defaultInvoiceMemo(defaultInvoiceMemo.getOrNull()) - - /** - * Sets [Builder.defaultInvoiceMemo] to an arbitrary JSON value. - * - * You should usually call [Builder.defaultInvoiceMemo] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun defaultInvoiceMemo(defaultInvoiceMemo: JsonField) = apply { - body.defaultInvoiceMemo(defaultInvoiceMemo) - } - - fun externalPlanId(externalPlanId: String?) = apply { body.externalPlanId(externalPlanId) } - - /** Alias for calling [Builder.externalPlanId] with `externalPlanId.orElse(null)`. */ - fun externalPlanId(externalPlanId: Optional) = - externalPlanId(externalPlanId.getOrNull()) - - /** - * Sets [Builder.externalPlanId] to an arbitrary JSON value. - * - * You should usually call [Builder.externalPlanId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun externalPlanId(externalPlanId: JsonField) = apply { - body.externalPlanId(externalPlanId) - } - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. - */ - fun metadata(metadata: Metadata?) = apply { body.metadata(metadata) } - - /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ - fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) - - /** - * Sets [Builder.metadata] to an arbitrary JSON value. - * - * You should usually call [Builder.metadata] with a well-typed [Metadata] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun metadata(metadata: JsonField) = apply { body.metadata(metadata) } - - /** - * The net terms determines the difference between the invoice date and the issue date for - * the invoice. If you intend the invoice to be due on issue, set this to 0. - */ - fun netTerms(netTerms: Long?) = apply { body.netTerms(netTerms) } - - /** - * Alias for [Builder.netTerms]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun netTerms(netTerms: Long) = netTerms(netTerms as Long?) - - /** Alias for calling [Builder.netTerms] with `netTerms.orElse(null)`. */ - fun netTerms(netTerms: Optional) = netTerms(netTerms.getOrNull()) + /** + * Alias for calling [addPrice] with + * `Price.ofNewPlanGroupedTieredPackage(newPlanGroupedTieredPackage)`. + */ + fun addPrice(newPlanGroupedTieredPackage: Price.NewPlanGroupedTieredPackagePrice) = + addPrice(Price.ofNewPlanGroupedTieredPackage(newPlanGroupedTieredPackage)) - /** - * Sets [Builder.netTerms] to an arbitrary JSON value. - * - * You should usually call [Builder.netTerms] with a well-typed [Long] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun netTerms(netTerms: JsonField) = apply { body.netTerms(netTerms) } + /** + * Alias for calling [addPrice] with + * `Price.ofNewPlanMaxGroupTieredPackage(newPlanMaxGroupTieredPackage)`. + */ + fun addPrice(newPlanMaxGroupTieredPackage: Price.NewPlanMaxGroupTieredPackagePrice) = + addPrice(Price.ofNewPlanMaxGroupTieredPackage(newPlanMaxGroupTieredPackage)) - /** - * The status of the plan to create (either active or draft). If not specified, this - * defaults to active. - */ - fun status(status: Status) = apply { body.status(status) } + /** + * Alias for calling [addPrice] with + * `Price.ofNewPlanScalableMatrixWithUnitPricing(newPlanScalableMatrixWithUnitPricing)`. + */ + fun addPrice( + newPlanScalableMatrixWithUnitPricing: + Price.NewPlanScalableMatrixWithUnitPricingPrice + ) = + addPrice( + Price.ofNewPlanScalableMatrixWithUnitPricing( + newPlanScalableMatrixWithUnitPricing + ) + ) - /** - * Sets [Builder.status] to an arbitrary JSON value. - * - * You should usually call [Builder.status] with a well-typed [Status] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun status(status: JsonField) = apply { body.status(status) } + /** + * Alias for calling [addPrice] with + * `Price.ofNewPlanScalableMatrixWithTieredPricing(newPlanScalableMatrixWithTieredPricing)`. + */ + fun addPrice( + newPlanScalableMatrixWithTieredPricing: + Price.NewPlanScalableMatrixWithTieredPricingPrice + ) = + addPrice( + Price.ofNewPlanScalableMatrixWithTieredPricing( + newPlanScalableMatrixWithTieredPricing + ) + ) - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { - body.additionalProperties(additionalBodyProperties) - } + /** + * Alias for calling [addPrice] with + * `Price.ofNewPlanCumulativeGroupedBulk(newPlanCumulativeGroupedBulk)`. + */ + fun addPrice(newPlanCumulativeGroupedBulk: Price.NewPlanCumulativeGroupedBulkPrice) = + addPrice(Price.ofNewPlanCumulativeGroupedBulk(newPlanCumulativeGroupedBulk)) - fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - body.putAdditionalProperty(key, value) - } + /** Free-form text which is available on the invoice PDF and the Orb invoice portal. */ + fun defaultInvoiceMemo(defaultInvoiceMemo: String?) = + defaultInvoiceMemo(JsonField.ofNullable(defaultInvoiceMemo)) - fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = - apply { - body.putAllAdditionalProperties(additionalBodyProperties) + /** + * Alias for calling [Builder.defaultInvoiceMemo] with + * `defaultInvoiceMemo.orElse(null)`. + */ + fun defaultInvoiceMemo(defaultInvoiceMemo: Optional) = + defaultInvoiceMemo(defaultInvoiceMemo.getOrNull()) + + /** + * Sets [Builder.defaultInvoiceMemo] to an arbitrary JSON value. + * + * You should usually call [Builder.defaultInvoiceMemo] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun defaultInvoiceMemo(defaultInvoiceMemo: JsonField) = apply { + this.defaultInvoiceMemo = defaultInvoiceMemo } - fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + fun externalPlanId(externalPlanId: String?) = + externalPlanId(JsonField.ofNullable(externalPlanId)) - fun removeAllAdditionalBodyProperties(keys: Set) = apply { - body.removeAllAdditionalProperties(keys) - } + /** Alias for calling [Builder.externalPlanId] with `externalPlanId.orElse(null)`. */ + fun externalPlanId(externalPlanId: Optional) = + externalPlanId(externalPlanId.getOrNull()) - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** + * Sets [Builder.externalPlanId] to an arbitrary JSON value. + * + * You should usually call [Builder.externalPlanId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun externalPlanId(externalPlanId: JsonField) = apply { + this.externalPlanId = externalPlanId + } - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by + * setting `metadata` to `null`. + */ + fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } + /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ + fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } + /** + * Sets [Builder.metadata] to an arbitrary JSON value. + * + * You should usually call [Builder.metadata] with a well-typed [Metadata] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun metadata(metadata: JsonField) = apply { this.metadata = metadata } - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** + * The net terms determines the difference between the invoice date and the issue date + * for the invoice. If you intend the invoice to be due on issue, set this to 0. + */ + fun netTerms(netTerms: Long?) = netTerms(JsonField.ofNullable(netTerms)) - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** + * Alias for [Builder.netTerms]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun netTerms(netTerms: Long) = netTerms(netTerms as Long?) - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } + /** Alias for calling [Builder.netTerms] with `netTerms.orElse(null)`. */ + fun netTerms(netTerms: Optional) = netTerms(netTerms.getOrNull()) - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } + /** + * Sets [Builder.netTerms] to an arbitrary JSON value. + * + * You should usually call [Builder.netTerms] with a well-typed [Long] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun netTerms(netTerms: JsonField) = apply { this.netTerms = netTerms } - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** + * The status of the plan to create (either active or draft). If not specified, this + * defaults to active. + */ + fun status(status: Status) = status(JsonField.of(status)) - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** + * Sets [Builder.status] to an arbitrary JSON value. + * + * You should usually call [Builder.status] with a well-typed [Status] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun status(status: JsonField) = apply { this.status = status } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .currency() + * .name() + * .prices() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body( + checkRequired("currency", currency), + checkRequired("name", name), + checkRequired("prices", prices).map { it.toImmutable() }, + defaultInvoiceMemo, + externalPlanId, + metadata, + netTerms, + status, + additionalProperties.toMutableMap(), + ) } - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } + private var validated: Boolean = false - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) + fun validate(): Body = apply { + if (validated) { + return@apply } - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) + currency() + name() + prices().forEach { it.validate() } + defaultInvoiceMemo() + externalPlanId() + metadata().ifPresent { it.validate() } + netTerms() + status() + validated = true } - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + return /* spotless:off */ other is Body && currency == other.currency && name == other.name && prices == other.prices && defaultInvoiceMemo == other.defaultInvoiceMemo && externalPlanId == other.externalPlanId && metadata == other.metadata && netTerms == other.netTerms && status == other.status && additionalProperties == other.additionalProperties /* spotless:on */ } - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(currency, name, prices, defaultInvoiceMemo, externalPlanId, metadata, netTerms, status, additionalProperties) } + /* spotless:on */ - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) - } + override fun hashCode(): Int = hashCode - /** - * Returns an immutable instance of [PlanCreateParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .currency() - * .name() - * .prices() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): PlanCreateParams = - PlanCreateParams(body.build(), additionalHeaders.build(), additionalQueryParams.build()) + override fun toString() = + "Body{currency=$currency, name=$name, prices=$prices, defaultInvoiceMemo=$defaultInvoiceMemo, externalPlanId=$externalPlanId, metadata=$metadata, netTerms=$netTerms, status=$status, additionalProperties=$additionalProperties}" } @JsonDeserialize(using = Price.Deserializer::class) @@ -2255,61 +2272,91 @@ private constructor( } } - @NoAutoDetect class NewPlanUnitPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("unit_config") - @ExcludeMissing - private val unitConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val unitConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("unit_config") + @ExcludeMissing + unitConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + unitConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -2590,34 +2637,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanUnitPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - unitConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3050,10 +3078,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPlanUnitPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + unitConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3281,17 +3334,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitConfig - @JsonCreator private constructor( - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of() + ) : this(unitAmount, mutableMapOf()) + /** * Rate per unit of usage * @@ -3311,20 +3366,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitConfig = apply { - if (validated) { - return@apply - } - - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3404,10 +3454,21 @@ private constructor( fun build(): UnitConfig = UnitConfig( checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UnitConfig = apply { + if (validated) { + return@apply + } + + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -3429,20 +3490,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -3481,21 +3545,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3596,10 +3654,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -3731,20 +3801,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -3783,21 +3856,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3898,10 +3965,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -4034,27 +4113,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4101,7 +4173,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -4139,61 +4221,91 @@ private constructor( "NewPlanUnitPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, unitConfig=$unitConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("package_config") - @ExcludeMissing - private val packageConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val packageConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("package_config") + @ExcludeMissing + packageConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + packageConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -4474,34 +4586,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - packageConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4935,10 +5028,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPlanPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + packageConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -5166,20 +5284,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class PackageConfig - @JsonCreator private constructor( - @JsonProperty("package_amount") - @ExcludeMissing - private val packageAmount: JsonField = JsonMissing.of(), - @JsonProperty("package_size") - @ExcludeMissing - private val packageSize: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val packageAmount: JsonField, + private val packageSize: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("package_amount") + @ExcludeMissing + packageAmount: JsonField = JsonMissing.of(), + @JsonProperty("package_size") + @ExcludeMissing + packageSize: JsonField = JsonMissing.of(), + ) : this(packageAmount, packageSize, mutableMapOf()) + /** * A currency amount to rate usage by * @@ -5219,21 +5340,15 @@ private constructor( @ExcludeMissing fun _packageSize(): JsonField = packageSize + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PackageConfig = apply { - if (validated) { - return@apply - } - - packageAmount() - packageSize() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5336,10 +5451,22 @@ private constructor( PackageConfig( checkRequired("packageAmount", packageAmount), checkRequired("packageSize", packageSize), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PackageConfig = apply { + if (validated) { + return@apply + } + + packageAmount() + packageSize() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5361,20 +5488,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -5413,21 +5543,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5528,10 +5652,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -5663,20 +5799,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -5715,21 +5854,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5830,10 +5963,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -5966,27 +6111,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6033,7 +6171,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -6071,61 +6219,91 @@ private constructor( "NewPlanPackagePrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, packageConfig=$packageConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanMatrixPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("matrix_config") - @ExcludeMissing - private val matrixConfig: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val matrixConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("matrix_config") + @ExcludeMissing + matrixConfig: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + matrixConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -6406,34 +6584,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanMatrixPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - matrixConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6867,10 +7026,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPlanMatrixPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + matrixConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -7000,23 +7184,27 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MatrixConfig - @JsonCreator private constructor( - @JsonProperty("default_unit_amount") - @ExcludeMissing - private val defaultUnitAmount: JsonField = JsonMissing.of(), - @JsonProperty("dimensions") - @ExcludeMissing - private val dimensions: JsonField> = JsonMissing.of(), - @JsonProperty("matrix_values") - @ExcludeMissing - private val matrixValues: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val defaultUnitAmount: JsonField, + private val dimensions: JsonField>, + private val matrixValues: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("default_unit_amount") + @ExcludeMissing + defaultUnitAmount: JsonField = JsonMissing.of(), + @JsonProperty("dimensions") + @ExcludeMissing + dimensions: JsonField> = JsonMissing.of(), + @JsonProperty("matrix_values") + @ExcludeMissing + matrixValues: JsonField> = JsonMissing.of(), + ) : this(defaultUnitAmount, dimensions, matrixValues, mutableMapOf()) + /** * Default per unit rate for any usage not bucketed into a specified matrix_value * @@ -7075,22 +7263,15 @@ private constructor( @ExcludeMissing fun _matrixValues(): JsonField> = matrixValues + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixConfig = apply { - if (validated) { - return@apply - } - - defaultUnitAmount() - dimensions() - matrixValues().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7237,24 +7418,40 @@ private constructor( checkRequired("defaultUnitAmount", defaultUnitAmount), checkRequired("dimensions", dimensions).map { it.toImmutable() }, checkRequired("matrixValues", matrixValues).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): MatrixConfig = apply { + if (validated) { + return@apply + } + + defaultUnitAmount() + dimensions() + matrixValues().forEach { it.validate() } + validated = true + } + class MatrixValue - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + ) : this(dimensionValues, unitAmount, mutableMapOf()) + /** * One or two matrix keys to filter usage to this Matrix value by. For example, * ["region", "tier"] could be used to filter cloud usage by a cloud region and @@ -7296,21 +7493,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixValue = apply { - if (validated) { - return@apply - } - - dimensionValues() - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7430,10 +7621,22 @@ private constructor( it.toImmutable() }, checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MatrixValue = apply { + if (validated) { + return@apply + } + + dimensionValues() + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7571,20 +7774,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -7623,21 +7829,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7738,10 +7938,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -7873,20 +8085,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -7925,21 +8140,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8040,10 +8249,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -8176,27 +8397,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8243,7 +8457,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -8281,61 +8505,91 @@ private constructor( "NewPlanMatrixPrice{cadence=$cadence, itemId=$itemId, matrixConfig=$matrixConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanTieredPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_config") - @ExcludeMissing - private val tieredConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_config") + @ExcludeMissing + tieredConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -8616,34 +8870,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanTieredPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9077,10 +9312,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPlanTieredPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -9308,17 +9568,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for rating based on total usage quantities into the specified tier * @@ -9336,20 +9598,15 @@ private constructor( */ @JsonProperty("tiers") @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9441,27 +9698,42 @@ private constructor( fun build(): TieredConfig = TieredConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("first_unit") - @ExcludeMissing - private val firstUnit: JsonField = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonProperty("last_unit") - @ExcludeMissing - private val lastUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val firstUnit: JsonField, + private val unitAmount: JsonField, + private val lastUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("first_unit") + @ExcludeMissing + firstUnit: JsonField = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + @JsonProperty("last_unit") + @ExcludeMissing + lastUnit: JsonField = JsonMissing.of(), + ) : this(firstUnit, unitAmount, lastUnit, mutableMapOf()) + /** * Inclusive tier starting value * @@ -9519,22 +9791,15 @@ private constructor( @ExcludeMissing fun _lastUnit(): JsonField = lastUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - firstUnit() - unitAmount() - lastUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9663,10 +9928,23 @@ private constructor( checkRequired("firstUnit", firstUnit), checkRequired("unitAmount", unitAmount), lastUnit, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + firstUnit() + unitAmount() + lastUnit() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -9706,20 +9984,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -9758,21 +10039,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9873,10 +10148,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -10008,20 +10295,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -10060,21 +10350,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10175,10 +10459,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -10311,27 +10607,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10378,7 +10667,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -10416,61 +10715,91 @@ private constructor( "NewPlanTieredPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredConfig=$tieredConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanTieredBpsPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_bps_config") - @ExcludeMissing - private val tieredBpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredBpsConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_bps_config") + @ExcludeMissing + tieredBpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredBpsConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -10752,34 +11081,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanTieredBpsPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredBpsConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -11214,10 +11524,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPlanTieredBpsPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredBpsConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -11445,17 +11780,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredBpsConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for a Graduated BPS pricing model, where usage is bucketed into specified * tiers @@ -11474,20 +11811,15 @@ private constructor( */ @JsonProperty("tiers") @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredBpsConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -11582,30 +11914,46 @@ private constructor( fun build(): TieredBpsConfig = TieredBpsConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredBpsConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bps: JsonField, + private val minimumAmount: JsonField, + private val maximumAmount: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") + @ExcludeMissing + bps: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, minimumAmount, maximumAmount, perUnitMaximum, mutableMapOf()) + /** * Per-event basis point rate * @@ -11680,23 +12028,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - bps() - minimumAmount() - maximumAmount() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -11845,10 +12185,24 @@ private constructor( checkRequired("minimumAmount", minimumAmount), maximumAmount, perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + bps() + minimumAmount() + maximumAmount() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -11888,20 +12242,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -11940,21 +12297,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12055,10 +12406,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -12190,20 +12553,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -12242,21 +12608,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12357,10 +12717,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -12493,27 +12865,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12560,7 +12925,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -12598,61 +12973,91 @@ private constructor( "NewPlanTieredBpsPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredBpsConfig=$tieredBpsConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanBpsPrice - @JsonCreator private constructor( - @JsonProperty("bps_config") - @ExcludeMissing - private val bpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bpsConfig: JsonField, + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps_config") + @ExcludeMissing + bpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + bpsConfig, + cadence, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -12933,34 +13338,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanBpsPrice = apply { - if (validated) { - return@apply - } - - bpsConfig().validate() - cadence() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13393,24 +13779,50 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewPlanBpsPrice = apply { + if (validated) { + return@apply + } + + bpsConfig().validate() + cadence() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + class BpsConfig - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bps: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") @ExcludeMissing bps: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, perUnitMaximum, mutableMapOf()) + /** * Basis point take rate per event * @@ -13446,21 +13858,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BpsConfig = apply { - if (validated) { - return@apply - } - - bps() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13563,10 +13969,22 @@ private constructor( BpsConfig( checkRequired("bps", bps), perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BpsConfig = apply { + if (validated) { + return@apply + } + + bps() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -13815,20 +14233,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -13867,21 +14288,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13982,10 +14397,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -14117,20 +14544,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -14169,21 +14599,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -14284,10 +14708,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -14420,27 +14856,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -14487,7 +14916,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -14525,61 +14964,91 @@ private constructor( "NewPlanBpsPrice{bpsConfig=$bpsConfig, cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanBulkBpsPrice - @JsonCreator private constructor( - @JsonProperty("bulk_bps_config") - @ExcludeMissing - private val bulkBpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bulkBpsConfig: JsonField, + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bulk_bps_config") + @ExcludeMissing + bulkBpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + bulkBpsConfig, + cadence, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -14860,34 +15329,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanBulkBpsPrice = apply { - if (validated) { - return@apply - } - - bulkBpsConfig().validate() - cadence() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -15321,21 +15771,48 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewPlanBulkBpsPrice = apply { + if (validated) { + return@apply + } + + bulkBpsConfig().validate() + cadence() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + class BulkBpsConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for a bulk BPS pricing model where all usage is aggregated to a single tier * based on total volume @@ -15354,20 +15831,15 @@ private constructor( */ @JsonProperty("tiers") @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkBpsConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -15462,27 +15934,42 @@ private constructor( fun build(): BulkBpsConfig = BulkBpsConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): BulkBpsConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bps: JsonField, + private val maximumAmount: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") + @ExcludeMissing + bps: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, maximumAmount, perUnitMaximum, mutableMapOf()) + /** * Basis points to rate on * @@ -15538,22 +16025,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - bps() - maximumAmount() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -15682,10 +16162,23 @@ private constructor( checkRequired("bps", bps), maximumAmount, perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + bps() + maximumAmount() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -15952,20 +16445,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -16004,21 +16500,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -16119,10 +16609,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -16254,20 +16756,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -16306,21 +16811,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -16421,10 +16920,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -16557,27 +17068,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -16624,7 +17128,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -16662,61 +17176,91 @@ private constructor( "NewPlanBulkBpsPrice{bulkBpsConfig=$bulkBpsConfig, cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanBulkPrice - @JsonCreator private constructor( - @JsonProperty("bulk_config") - @ExcludeMissing - private val bulkConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bulkConfig: JsonField, + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bulk_config") + @ExcludeMissing + bulkConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + bulkConfig, + cadence, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -16997,34 +17541,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanBulkPrice = apply { - if (validated) { - return@apply - } - - bulkConfig().validate() - cadence() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -17457,21 +17982,48 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewPlanBulkPrice = apply { + if (validated) { + return@apply + } + + bulkConfig().validate() + cadence() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + class BulkConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Bulk tiers for rating based on total usage volume * @@ -17489,20 +18041,15 @@ private constructor( */ @JsonProperty("tiers") @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -17594,24 +18141,38 @@ private constructor( fun build(): BulkConfig = BulkConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): BulkConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonProperty("maximum_units") - @ExcludeMissing - private val maximumUnits: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val unitAmount: JsonField, + private val maximumUnits: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + @JsonProperty("maximum_units") + @ExcludeMissing + maximumUnits: JsonField = JsonMissing.of(), + ) : this(unitAmount, maximumUnits, mutableMapOf()) + /** * Amount per unit * @@ -17650,21 +18211,15 @@ private constructor( @ExcludeMissing fun _maximumUnits(): JsonField = maximumUnits + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - unitAmount() - maximumUnits() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -17778,10 +18333,22 @@ private constructor( Tier( checkRequired("unitAmount", unitAmount), maximumUnits, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + unitAmount() + maximumUnits() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -18048,20 +18615,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -18100,21 +18670,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -18215,10 +18779,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -18350,20 +18926,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -18402,21 +18981,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -18517,10 +19090,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -18653,27 +19238,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -18720,7 +19298,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -18758,62 +19346,92 @@ private constructor( "NewPlanBulkPrice{bulkConfig=$bulkConfig, cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanThresholdTotalAmountPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("threshold_total_amount_config") - @ExcludeMissing - private val thresholdTotalAmountConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val thresholdTotalAmountConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("threshold_total_amount_config") + @ExcludeMissing + thresholdTotalAmountConfig: JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + thresholdTotalAmountConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -19096,34 +19714,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanThresholdTotalAmountPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - thresholdTotalAmountConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -19566,10 +20165,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPlanThresholdTotalAmountPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + thresholdTotalAmountConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -19797,27 +20421,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ThresholdTotalAmountConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ThresholdTotalAmountConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -19870,7 +20487,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ThresholdTotalAmountConfig = - ThresholdTotalAmountConfig(additionalProperties.toImmutable()) + ThresholdTotalAmountConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): ThresholdTotalAmountConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -19894,20 +20521,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -19946,21 +20576,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -20061,10 +20685,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -20196,20 +20832,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -20248,21 +20887,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -20363,10 +20996,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -20499,27 +21144,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -20566,7 +21204,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -20604,61 +21252,91 @@ private constructor( "NewPlanThresholdTotalAmountPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, thresholdTotalAmountConfig=$thresholdTotalAmountConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_package_config") - @ExcludeMissing - private val tieredPackageConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredPackageConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_package_config") + @ExcludeMissing + tieredPackageConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredPackageConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -20940,34 +21618,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanTieredPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredPackageConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -21405,10 +22064,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPlanTieredPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredPackageConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -21636,27 +22320,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredPackageConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredPackageConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -21708,7 +22385,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageConfig = - TieredPackageConfig(additionalProperties.toImmutable()) + TieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -21732,20 +22419,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -21784,21 +22474,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -21899,10 +22583,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -22034,20 +22730,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -22086,21 +22785,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -22201,10 +22894,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -22337,27 +23042,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -22404,7 +23102,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -22442,62 +23150,91 @@ private constructor( "NewPlanTieredPackagePrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredPackageConfig=$tieredPackageConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanTieredWithMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_with_minimum_config") - @ExcludeMissing - private val tieredWithMinimumConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredWithMinimumConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_with_minimum_config") + @ExcludeMissing + tieredWithMinimumConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredWithMinimumConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -22780,34 +23517,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanTieredWithMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredWithMinimumConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -23247,10 +23965,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPlanTieredWithMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredWithMinimumConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -23478,27 +24221,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredWithMinimumConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredWithMinimumConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -23550,7 +24286,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithMinimumConfig = - TieredWithMinimumConfig(additionalProperties.toImmutable()) + TieredWithMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredWithMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -23574,20 +24320,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -23626,21 +24375,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -23741,10 +24484,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -23876,20 +24631,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -23928,21 +24686,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -24043,10 +24795,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -24179,27 +24943,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -24246,7 +25003,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -24284,61 +25051,91 @@ private constructor( "NewPlanTieredWithMinimumPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredWithMinimumConfig=$tieredWithMinimumConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanUnitWithPercentPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("unit_with_percent_config") - @ExcludeMissing - private val unitWithPercentConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val unitWithPercentConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("unit_with_percent_config") + @ExcludeMissing + unitWithPercentConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + unitWithPercentConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -24620,34 +25417,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanUnitWithPercentPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - unitWithPercentConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -25087,10 +25865,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPlanUnitWithPercentPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + unitWithPercentConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -25318,27 +26121,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitWithPercentConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitWithPercentConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -25390,7 +26186,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithPercentConfig = - UnitWithPercentConfig(additionalProperties.toImmutable()) + UnitWithPercentConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): UnitWithPercentConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -25414,20 +26220,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -25466,21 +26275,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -25581,10 +26384,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -25716,20 +26531,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -25768,21 +26586,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -25883,10 +26695,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -26019,27 +26843,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -26086,7 +26903,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -26124,62 +26951,92 @@ private constructor( "NewPlanUnitWithPercentPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, unitWithPercentConfig=$unitWithPercentConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanPackageWithAllocationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("package_with_allocation_config") - @ExcludeMissing - private val packageWithAllocationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val packageWithAllocationConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("package_with_allocation_config") + @ExcludeMissing + packageWithAllocationConfig: JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + packageWithAllocationConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -26462,34 +27319,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanPackageWithAllocationPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - packageWithAllocationConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -26932,10 +27770,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPlanPackageWithAllocationPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + packageWithAllocationConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -27163,27 +28026,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class PackageWithAllocationConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PackageWithAllocationConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -27236,7 +28092,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): PackageWithAllocationConfig = - PackageWithAllocationConfig(additionalProperties.toImmutable()) + PackageWithAllocationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): PackageWithAllocationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -27260,20 +28126,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -27312,21 +28181,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -27427,10 +28290,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -27562,20 +28437,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -27614,21 +28492,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -27729,10 +28601,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -27865,27 +28749,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -27932,7 +28809,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -27970,62 +28857,91 @@ private constructor( "NewPlanPackageWithAllocationPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, packageWithAllocationConfig=$packageWithAllocationConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanTierWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_with_proration_config") - @ExcludeMissing - private val tieredWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredWithProrationConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_with_proration_config") + @ExcludeMissing + tieredWithProrationConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredWithProrationConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -28308,34 +29224,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanTierWithProrationPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredWithProrationConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -28776,10 +29673,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPlanTierWithProrationPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredWithProrationConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -29007,27 +29929,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredWithProrationConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredWithProrationConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -29080,7 +29995,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithProrationConfig = - TieredWithProrationConfig(additionalProperties.toImmutable()) + TieredWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -29104,20 +30029,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -29156,21 +30084,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -29271,10 +30193,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -29406,20 +30340,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -29458,21 +30395,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -29573,10 +30504,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -29709,27 +30652,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -29776,7 +30712,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -29814,62 +30760,91 @@ private constructor( "NewPlanTierWithProrationPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredWithProrationConfig=$tieredWithProrationConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanUnitWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("unit_with_proration_config") - @ExcludeMissing - private val unitWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val unitWithProrationConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("unit_with_proration_config") + @ExcludeMissing + unitWithProrationConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + unitWithProrationConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -30152,34 +31127,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanUnitWithProrationPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - unitWithProrationConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -30619,10 +31575,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPlanUnitWithProrationPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + unitWithProrationConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -30850,27 +31831,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitWithProrationConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitWithProrationConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -30922,7 +31896,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithProrationConfig = - UnitWithProrationConfig(additionalProperties.toImmutable()) + UnitWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): UnitWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -30946,20 +31930,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -30998,21 +31985,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -31113,10 +32094,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -31248,20 +32241,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -31300,21 +32296,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -31415,10 +32405,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -31551,27 +32553,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -31618,7 +32613,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -31656,62 +32661,91 @@ private constructor( "NewPlanUnitWithProrationPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, unitWithProrationConfig=$unitWithProrationConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanGroupedAllocationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("grouped_allocation_config") - @ExcludeMissing - private val groupedAllocationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val groupedAllocationConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("grouped_allocation_config") + @ExcludeMissing + groupedAllocationConfig: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + groupedAllocationConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -31994,34 +33028,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanGroupedAllocationPrice = apply { - if (validated) { - return@apply - } - - cadence() - groupedAllocationConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -32461,10 +33476,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPlanGroupedAllocationPrice = apply { + if (validated) { + return@apply + } + + cadence() + groupedAllocationConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -32594,27 +33634,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedAllocationConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedAllocationConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -32666,7 +33699,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedAllocationConfig = - GroupedAllocationConfig(additionalProperties.toImmutable()) + GroupedAllocationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedAllocationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -32788,20 +33831,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -32840,21 +33886,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -32955,10 +33995,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -33090,20 +34142,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -33142,21 +34197,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -33257,10 +34306,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -33393,27 +34454,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -33460,7 +34514,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -33498,63 +34562,93 @@ private constructor( "NewPlanGroupedAllocationPrice{cadence=$cadence, groupedAllocationConfig=$groupedAllocationConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanGroupedWithProratedMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("grouped_with_prorated_minimum_config") - @ExcludeMissing + private val cadence: JsonField, private val groupedWithProratedMinimumConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("grouped_with_prorated_minimum_config") + @ExcludeMissing + groupedWithProratedMinimumConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + groupedWithProratedMinimumConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -33837,34 +34931,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanGroupedWithProratedMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - groupedWithProratedMinimumConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -34313,10 +35388,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPlanGroupedWithProratedMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + groupedWithProratedMinimumConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -34446,27 +35546,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedWithProratedMinimumConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedWithProratedMinimumConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -34520,7 +35613,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithProratedMinimumConfig = - GroupedWithProratedMinimumConfig(additionalProperties.toImmutable()) + GroupedWithProratedMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedWithProratedMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -34643,20 +35746,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -34695,21 +35801,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -34810,10 +35910,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -34945,20 +36057,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -34997,21 +36112,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -35112,10 +36221,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -35248,27 +36369,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -35315,7 +36429,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -35353,63 +36477,92 @@ private constructor( "NewPlanGroupedWithProratedMinimumPrice{cadence=$cadence, groupedWithProratedMinimumConfig=$groupedWithProratedMinimumConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanGroupedWithMeteredMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("grouped_with_metered_minimum_config") - @ExcludeMissing - private val groupedWithMeteredMinimumConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val groupedWithMeteredMinimumConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("grouped_with_metered_minimum_config") + @ExcludeMissing + groupedWithMeteredMinimumConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + groupedWithMeteredMinimumConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -35692,34 +36845,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanGroupedWithMeteredMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - groupedWithMeteredMinimumConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -36166,10 +37300,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPlanGroupedWithMeteredMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + groupedWithMeteredMinimumConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -36299,27 +37458,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedWithMeteredMinimumConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedWithMeteredMinimumConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -36373,7 +37525,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithMeteredMinimumConfig = - GroupedWithMeteredMinimumConfig(additionalProperties.toImmutable()) + GroupedWithMeteredMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedWithMeteredMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -36495,20 +37657,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -36547,21 +37712,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -36662,10 +37821,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -36797,20 +37968,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -36849,21 +38023,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -36964,10 +38132,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -37100,27 +38280,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -37167,7 +38340,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -37205,62 +38388,92 @@ private constructor( "NewPlanGroupedWithMeteredMinimumPrice{cadence=$cadence, groupedWithMeteredMinimumConfig=$groupedWithMeteredMinimumConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanMatrixWithDisplayNamePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("matrix_with_display_name_config") - @ExcludeMissing - private val matrixWithDisplayNameConfig: JsonField = - JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val matrixWithDisplayNameConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("matrix_with_display_name_config") + @ExcludeMissing + matrixWithDisplayNameConfig: JsonField = + JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + matrixWithDisplayNameConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -37543,34 +38756,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanMatrixWithDisplayNamePrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - matrixWithDisplayNameConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -38013,10 +39207,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPlanMatrixWithDisplayNamePrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + matrixWithDisplayNameConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -38146,27 +39365,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MatrixWithDisplayNameConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixWithDisplayNameConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -38219,7 +39431,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MatrixWithDisplayNameConfig = - MatrixWithDisplayNameConfig(additionalProperties.toImmutable()) + MatrixWithDisplayNameConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): MatrixWithDisplayNameConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -38341,20 +39563,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -38393,21 +39618,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -38508,10 +39727,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -38643,20 +39874,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -38695,21 +39929,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -38810,10 +40038,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -38946,27 +40186,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -39013,7 +40246,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -39051,62 +40294,91 @@ private constructor( "NewPlanMatrixWithDisplayNamePrice{cadence=$cadence, itemId=$itemId, matrixWithDisplayNameConfig=$matrixWithDisplayNameConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanBulkWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("bulk_with_proration_config") - @ExcludeMissing - private val bulkWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bulkWithProrationConfig: JsonField, + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bulk_with_proration_config") + @ExcludeMissing + bulkWithProrationConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + bulkWithProrationConfig, + cadence, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -39389,34 +40661,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanBulkWithProrationPrice = apply { - if (validated) { - return@apply - } - - bulkWithProrationConfig().validate() - cadence() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -39856,32 +41109,50 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect - class BulkWithProrationConfig - @JsonCreator - private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private var validated: Boolean = false - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun validate(): NewPlanBulkWithProrationPrice = apply { + if (validated) { + return@apply + } - private var validated: Boolean = false + bulkWithProrationConfig().validate() + cadence() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } - fun validate(): BulkWithProrationConfig = apply { - if (validated) { - return@apply - } + class BulkWithProrationConfig + private constructor(private val additionalProperties: MutableMap) { - validated = true + @JsonCreator private constructor() : this(mutableMapOf()) + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -39932,7 +41203,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): BulkWithProrationConfig = - BulkWithProrationConfig(additionalProperties.toImmutable()) + BulkWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BulkWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -40183,20 +41464,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -40235,21 +41519,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -40350,10 +41628,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -40485,20 +41775,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -40537,21 +41830,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -40652,10 +41939,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -40788,27 +42087,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -40855,7 +42147,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -40893,62 +42195,92 @@ private constructor( "NewPlanBulkWithProrationPrice{bulkWithProrationConfig=$bulkWithProrationConfig, cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanGroupedTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("grouped_tiered_package_config") - @ExcludeMissing - private val groupedTieredPackageConfig: JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val groupedTieredPackageConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("grouped_tiered_package_config") + @ExcludeMissing + groupedTieredPackageConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + groupedTieredPackageConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -41231,34 +42563,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanGroupedTieredPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - groupedTieredPackageConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -41701,10 +43014,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPlanGroupedTieredPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + groupedTieredPackageConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -41834,27 +43172,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedTieredPackageConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedTieredPackageConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -41907,7 +43238,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredPackageConfig = - GroupedTieredPackageConfig(additionalProperties.toImmutable()) + GroupedTieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedTieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -42029,20 +43370,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -42081,21 +43425,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -42196,10 +43534,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -42331,20 +43681,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -42383,21 +43736,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -42498,10 +43845,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -42634,27 +43993,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -42701,7 +44053,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -42739,62 +44101,92 @@ private constructor( "NewPlanGroupedTieredPackagePrice{cadence=$cadence, groupedTieredPackageConfig=$groupedTieredPackageConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanMaxGroupTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("max_group_tiered_package_config") - @ExcludeMissing - private val maxGroupTieredPackageConfig: JsonField = - JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val maxGroupTieredPackageConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("max_group_tiered_package_config") + @ExcludeMissing + maxGroupTieredPackageConfig: JsonField = + JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + maxGroupTieredPackageConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -43077,34 +44469,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanMaxGroupTieredPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - maxGroupTieredPackageConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -43547,10 +44920,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPlanMaxGroupTieredPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + maxGroupTieredPackageConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -43680,27 +45078,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MaxGroupTieredPackageConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MaxGroupTieredPackageConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -43753,7 +45144,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MaxGroupTieredPackageConfig = - MaxGroupTieredPackageConfig(additionalProperties.toImmutable()) + MaxGroupTieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): MaxGroupTieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -43875,20 +45276,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -43927,21 +45331,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -44042,10 +45440,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -44177,20 +45587,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -44229,21 +45642,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -44344,10 +45751,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -44480,27 +45899,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -44547,7 +45959,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -44585,63 +46007,94 @@ private constructor( "NewPlanMaxGroupTieredPackagePrice{cadence=$cadence, itemId=$itemId, maxGroupTieredPackageConfig=$maxGroupTieredPackageConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanScalableMatrixWithUnitPricingPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("scalable_matrix_with_unit_pricing_config") - @ExcludeMissing + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, private val scalableMatrixWithUnitPricingConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("scalable_matrix_with_unit_pricing_config") + @ExcludeMissing + scalableMatrixWithUnitPricingConfig: + JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + scalableMatrixWithUnitPricingConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -44926,34 +46379,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanScalableMatrixWithUnitPricingPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - scalableMatrixWithUnitPricingConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -45411,10 +46845,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPlanScalableMatrixWithUnitPricingPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + scalableMatrixWithUnitPricingConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -45643,27 +47102,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ScalableMatrixWithUnitPricingConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ScalableMatrixWithUnitPricingConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -45717,7 +47169,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithUnitPricingConfig = - ScalableMatrixWithUnitPricingConfig(additionalProperties.toImmutable()) + ScalableMatrixWithUnitPricingConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): ScalableMatrixWithUnitPricingConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -45741,20 +47203,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -45793,21 +47258,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -45908,10 +47367,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -46043,20 +47514,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -46095,21 +47569,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -46210,10 +47678,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -46346,27 +47826,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -46413,7 +47886,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -46451,63 +47934,94 @@ private constructor( "NewPlanScalableMatrixWithUnitPricingPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, scalableMatrixWithUnitPricingConfig=$scalableMatrixWithUnitPricingConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanScalableMatrixWithTieredPricingPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("scalable_matrix_with_tiered_pricing_config") - @ExcludeMissing + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, private val scalableMatrixWithTieredPricingConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("scalable_matrix_with_tiered_pricing_config") + @ExcludeMissing + scalableMatrixWithTieredPricingConfig: + JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + scalableMatrixWithTieredPricingConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -46793,34 +48307,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanScalableMatrixWithTieredPricingPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - scalableMatrixWithTieredPricingConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -47279,10 +48774,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPlanScalableMatrixWithTieredPricingPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + scalableMatrixWithTieredPricingConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -47514,27 +49034,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ScalableMatrixWithTieredPricingConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ScalableMatrixWithTieredPricingConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -47589,7 +49102,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithTieredPricingConfig = - ScalableMatrixWithTieredPricingConfig(additionalProperties.toImmutable()) + ScalableMatrixWithTieredPricingConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): ScalableMatrixWithTieredPricingConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -47613,20 +49136,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -47665,21 +49191,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -47780,10 +49300,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -47915,20 +49447,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -47967,21 +49502,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -48082,10 +49611,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -48218,27 +49759,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -48285,7 +49819,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -48323,62 +49867,92 @@ private constructor( "NewPlanScalableMatrixWithTieredPricingPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, scalableMatrixWithTieredPricingConfig=$scalableMatrixWithTieredPricingConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewPlanCumulativeGroupedBulkPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("cumulative_grouped_bulk_config") - @ExcludeMissing - private val cumulativeGroupedBulkConfig: JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val cumulativeGroupedBulkConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("cumulative_grouped_bulk_config") + @ExcludeMissing + cumulativeGroupedBulkConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + cumulativeGroupedBulkConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -48661,34 +50235,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPlanCumulativeGroupedBulkPrice = apply { - if (validated) { - return@apply - } - - cadence() - cumulativeGroupedBulkConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -49131,10 +50686,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPlanCumulativeGroupedBulkPrice = apply { + if (validated) { + return@apply + } + + cadence() + cumulativeGroupedBulkConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -49264,27 +50844,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CumulativeGroupedBulkConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CumulativeGroupedBulkConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -49337,7 +50910,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): CumulativeGroupedBulkConfig = - CumulativeGroupedBulkConfig(additionalProperties.toImmutable()) + CumulativeGroupedBulkConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): CumulativeGroupedBulkConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -49459,20 +51042,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -49511,21 +51097,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -49626,10 +51206,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -49761,20 +51353,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -49813,21 +51408,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -49928,10 +51517,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -50064,27 +51665,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -50131,7 +51725,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -50175,27 +51779,20 @@ private constructor( * the value to `null`, and the entire metadata mapping can be cleared by setting `metadata` to * `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -50239,7 +51836,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanExternalPlanIdFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanExternalPlanIdFetchParams.kt index 13b5743e..1ef99371 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanExternalPlanIdFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanExternalPlanIdFetchParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -38,16 +37,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> externalPlanId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - fun toBuilder() = Builder().from(this) companion object { @@ -65,7 +54,6 @@ private constructor( } /** A builder for [PlanExternalPlanIdFetchParams]. */ - @NoAutoDetect class Builder internal constructor() { private var externalPlanId: String? = null @@ -199,6 +187,16 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> externalPlanId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanExternalPlanIdUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanExternalPlanIdUpdateParams.kt index 280f4755..99963a35 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanExternalPlanIdUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanExternalPlanIdUpdateParams.kt @@ -10,14 +10,12 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -76,195 +74,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - fun _pathParam(index: Int): String = - when (index) { - 0 -> otherExternalPlanId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("external_plan_id") - @ExcludeMissing - private val externalPlanId: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * An optional user-defined ID for this plan resource, used throughout the system as an - * alias for this Plan. Use this field to identify a plan by an existing identifier in your - * system. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun externalPlanId(): Optional = - Optional.ofNullable(externalPlanId.getNullable("external_plan_id")) - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) - - /** - * Returns the raw JSON value of [externalPlanId]. - * - * Unlike [externalPlanId], this method doesn't throw if the JSON field has an unexpected - * type. - */ - @JsonProperty("external_plan_id") - @ExcludeMissing - fun _externalPlanId(): JsonField = externalPlanId - - /** - * Returns the raw JSON value of [metadata]. - * - * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - externalPlanId() - metadata().ifPresent { it.validate() } - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** Returns a mutable builder for constructing an instance of [Body]. */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var externalPlanId: JsonField = JsonMissing.of() - private var metadata: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - externalPlanId = body.externalPlanId - metadata = body.metadata - additionalProperties = body.additionalProperties.toMutableMap() - } - - /** - * An optional user-defined ID for this plan resource, used throughout the system as an - * alias for this Plan. Use this field to identify a plan by an existing identifier in - * your system. - */ - fun externalPlanId(externalPlanId: String?) = - externalPlanId(JsonField.ofNullable(externalPlanId)) - - /** Alias for calling [Builder.externalPlanId] with `externalPlanId.orElse(null)`. */ - fun externalPlanId(externalPlanId: Optional) = - externalPlanId(externalPlanId.getOrNull()) - - /** - * Sets [Builder.externalPlanId] to an arbitrary JSON value. - * - * You should usually call [Builder.externalPlanId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun externalPlanId(externalPlanId: JsonField) = apply { - this.externalPlanId = externalPlanId - } - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by - * setting `metadata` to `null`. - */ - fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) - - /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ - fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) - - /** - * Sets [Builder.metadata] to an arbitrary JSON value. - * - * You should usually call [Builder.metadata] with a well-typed [Metadata] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun metadata(metadata: JsonField) = apply { this.metadata = metadata } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - */ - fun build(): Body = Body(externalPlanId, metadata, additionalProperties.toImmutable()) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && externalPlanId == other.externalPlanId && metadata == other.metadata && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(externalPlanId, metadata, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{externalPlanId=$externalPlanId, metadata=$metadata, additionalProperties=$additionalProperties}" - } - fun toBuilder() = Builder().from(this) companion object { @@ -282,7 +91,6 @@ private constructor( } /** A builder for [PlanExternalPlanIdUpdateParams]. */ - @NoAutoDetect class Builder internal constructor() { private var otherExternalPlanId: String? = null @@ -481,33 +289,224 @@ private constructor( ) } - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by setting - * the value to `null`, and the entire metadata mapping can be cleared by setting `metadata` to - * `null`. - */ - @NoAutoDetect - class Metadata - @JsonCreator + @JvmSynthetic internal fun _body(): Body = body + + fun _pathParam(index: Int): String = + when (index) { + 0 -> otherExternalPlanId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val externalPlanId: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("external_plan_id") + @ExcludeMissing + externalPlanId: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this(externalPlanId, metadata, mutableMapOf()) + + /** + * An optional user-defined ID for this plan resource, used throughout the system as an + * alias for this Plan. Use this field to identify a plan by an existing identifier in your + * system. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun externalPlanId(): Optional = + Optional.ofNullable(externalPlanId.getNullable("external_plan_id")) + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) + + /** + * Returns the raw JSON value of [externalPlanId]. + * + * Unlike [externalPlanId], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("external_plan_id") + @ExcludeMissing + fun _externalPlanId(): JsonField = externalPlanId + + /** + * Returns the raw JSON value of [metadata]. + * + * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** Returns a mutable builder for constructing an instance of [Body]. */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var externalPlanId: JsonField = JsonMissing.of() + private var metadata: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + externalPlanId = body.externalPlanId + metadata = body.metadata + additionalProperties = body.additionalProperties.toMutableMap() + } + + /** + * An optional user-defined ID for this plan resource, used throughout the system as an + * alias for this Plan. Use this field to identify a plan by an existing identifier in + * your system. + */ + fun externalPlanId(externalPlanId: String?) = + externalPlanId(JsonField.ofNullable(externalPlanId)) + + /** Alias for calling [Builder.externalPlanId] with `externalPlanId.orElse(null)`. */ + fun externalPlanId(externalPlanId: Optional) = + externalPlanId(externalPlanId.getOrNull()) + + /** + * Sets [Builder.externalPlanId] to an arbitrary JSON value. + * + * You should usually call [Builder.externalPlanId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun externalPlanId(externalPlanId: JsonField) = apply { + this.externalPlanId = externalPlanId + } + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by + * setting `metadata` to `null`. + */ + fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) + + /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ + fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) + + /** + * Sets [Builder.metadata] to an arbitrary JSON value. + * + * You should usually call [Builder.metadata] with a well-typed [Metadata] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun metadata(metadata: JsonField) = apply { this.metadata = metadata } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + */ + fun build(): Body = Body(externalPlanId, metadata, additionalProperties.toMutableMap()) + } private var validated: Boolean = false - fun validate(): Metadata = apply { + fun validate(): Body = apply { if (validated) { return@apply } + externalPlanId() + metadata().ifPresent { it.validate() } validated = true } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Body && externalPlanId == other.externalPlanId && metadata == other.metadata && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(externalPlanId, metadata, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{externalPlanId=$externalPlanId, metadata=$metadata, additionalProperties=$additionalProperties}" + } + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by setting + * the value to `null`, and the entire metadata mapping can be cleared by setting `metadata` to + * `null`. + */ + class Metadata + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -550,7 +549,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanFetchParams.kt index 795f3cd3..94bd31a9 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanFetchParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -39,16 +38,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> planId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - fun toBuilder() = Builder().from(this) companion object { @@ -65,7 +54,6 @@ private constructor( } /** A builder for [PlanFetchParams]. */ - @NoAutoDetect class Builder internal constructor() { private var planId: String? = null @@ -199,6 +187,16 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> planId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanListPage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanListPage.kt index 19e288f6..51c3c4e7 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanListPage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanListPage.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.blocking.PlanService +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.stream.Stream @@ -86,17 +84,19 @@ private constructor( PlanListPage(plansService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -109,9 +109,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -180,7 +186,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanListPageAsync.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanListPageAsync.kt index 0018c4c8..f0284c21 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanListPageAsync.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanListPageAsync.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.async.PlanServiceAsync +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.concurrent.CompletableFuture @@ -88,17 +86,19 @@ private constructor( PlanListPageAsync(plansService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -111,9 +111,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -182,7 +188,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanListParams.kt index 364d6991..a56974b5 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanListParams.kt @@ -5,7 +5,6 @@ package com.withorb.api.models import com.fasterxml.jackson.annotation.JsonCreator import com.withorb.api.core.Enum import com.withorb.api.core.JsonField -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams @@ -59,30 +58,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - createdAtGt?.let { - put("created_at[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtGte?.let { - put("created_at[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtLt?.let { - put("created_at[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtLte?.let { - put("created_at[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - cursor?.let { put("cursor", it) } - limit?.let { put("limit", it.toString()) } - status?.let { put("status", it.toString()) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -94,7 +69,6 @@ private constructor( } /** A builder for [PlanListParams]. */ - @NoAutoDetect class Builder internal constructor() { private var createdAtGt: OffsetDateTime? = null @@ -289,6 +263,30 @@ private constructor( ) } + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + createdAtGt?.let { + put("created_at[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtGte?.let { + put("created_at[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtLt?.let { + put("created_at[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtLte?.let { + put("created_at[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + cursor?.let { put("cursor", it) } + limit?.let { put("limit", it.toString()) } + status?.let { put("status", it.toString()) } + putAll(additionalQueryParams) + } + .build() + /** The plan status to filter to ('active', 'archived', or 'draft'). */ class Status @JsonCreator private constructor(private val value: JsonField) : Enum { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanUpdateParams.kt index 37c5ac17..d3290795 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanUpdateParams.kt @@ -10,14 +10,12 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -76,195 +74,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - fun _pathParam(index: Int): String = - when (index) { - 0 -> planId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("external_plan_id") - @ExcludeMissing - private val externalPlanId: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * An optional user-defined ID for this plan resource, used throughout the system as an - * alias for this Plan. Use this field to identify a plan by an existing identifier in your - * system. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun externalPlanId(): Optional = - Optional.ofNullable(externalPlanId.getNullable("external_plan_id")) - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) - - /** - * Returns the raw JSON value of [externalPlanId]. - * - * Unlike [externalPlanId], this method doesn't throw if the JSON field has an unexpected - * type. - */ - @JsonProperty("external_plan_id") - @ExcludeMissing - fun _externalPlanId(): JsonField = externalPlanId - - /** - * Returns the raw JSON value of [metadata]. - * - * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - externalPlanId() - metadata().ifPresent { it.validate() } - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** Returns a mutable builder for constructing an instance of [Body]. */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var externalPlanId: JsonField = JsonMissing.of() - private var metadata: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - externalPlanId = body.externalPlanId - metadata = body.metadata - additionalProperties = body.additionalProperties.toMutableMap() - } - - /** - * An optional user-defined ID for this plan resource, used throughout the system as an - * alias for this Plan. Use this field to identify a plan by an existing identifier in - * your system. - */ - fun externalPlanId(externalPlanId: String?) = - externalPlanId(JsonField.ofNullable(externalPlanId)) - - /** Alias for calling [Builder.externalPlanId] with `externalPlanId.orElse(null)`. */ - fun externalPlanId(externalPlanId: Optional) = - externalPlanId(externalPlanId.getOrNull()) - - /** - * Sets [Builder.externalPlanId] to an arbitrary JSON value. - * - * You should usually call [Builder.externalPlanId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun externalPlanId(externalPlanId: JsonField) = apply { - this.externalPlanId = externalPlanId - } - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by - * setting `metadata` to `null`. - */ - fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) - - /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ - fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) - - /** - * Sets [Builder.metadata] to an arbitrary JSON value. - * - * You should usually call [Builder.metadata] with a well-typed [Metadata] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun metadata(metadata: JsonField) = apply { this.metadata = metadata } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - */ - fun build(): Body = Body(externalPlanId, metadata, additionalProperties.toImmutable()) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && externalPlanId == other.externalPlanId && metadata == other.metadata && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(externalPlanId, metadata, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{externalPlanId=$externalPlanId, metadata=$metadata, additionalProperties=$additionalProperties}" - } - fun toBuilder() = Builder().from(this) companion object { @@ -281,7 +90,6 @@ private constructor( } /** A builder for [PlanUpdateParams]. */ - @NoAutoDetect class Builder internal constructor() { private var planId: String? = null @@ -478,33 +286,224 @@ private constructor( ) } - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by setting - * the value to `null`, and the entire metadata mapping can be cleared by setting `metadata` to - * `null`. - */ - @NoAutoDetect - class Metadata - @JsonCreator + @JvmSynthetic internal fun _body(): Body = body + + fun _pathParam(index: Int): String = + when (index) { + 0 -> planId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val externalPlanId: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("external_plan_id") + @ExcludeMissing + externalPlanId: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this(externalPlanId, metadata, mutableMapOf()) + + /** + * An optional user-defined ID for this plan resource, used throughout the system as an + * alias for this Plan. Use this field to identify a plan by an existing identifier in your + * system. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun externalPlanId(): Optional = + Optional.ofNullable(externalPlanId.getNullable("external_plan_id")) + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) + + /** + * Returns the raw JSON value of [externalPlanId]. + * + * Unlike [externalPlanId], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("external_plan_id") + @ExcludeMissing + fun _externalPlanId(): JsonField = externalPlanId + + /** + * Returns the raw JSON value of [metadata]. + * + * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** Returns a mutable builder for constructing an instance of [Body]. */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var externalPlanId: JsonField = JsonMissing.of() + private var metadata: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + externalPlanId = body.externalPlanId + metadata = body.metadata + additionalProperties = body.additionalProperties.toMutableMap() + } + + /** + * An optional user-defined ID for this plan resource, used throughout the system as an + * alias for this Plan. Use this field to identify a plan by an existing identifier in + * your system. + */ + fun externalPlanId(externalPlanId: String?) = + externalPlanId(JsonField.ofNullable(externalPlanId)) + + /** Alias for calling [Builder.externalPlanId] with `externalPlanId.orElse(null)`. */ + fun externalPlanId(externalPlanId: Optional) = + externalPlanId(externalPlanId.getOrNull()) + + /** + * Sets [Builder.externalPlanId] to an arbitrary JSON value. + * + * You should usually call [Builder.externalPlanId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun externalPlanId(externalPlanId: JsonField) = apply { + this.externalPlanId = externalPlanId + } + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by + * setting `metadata` to `null`. + */ + fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) + + /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ + fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) + + /** + * Sets [Builder.metadata] to an arbitrary JSON value. + * + * You should usually call [Builder.metadata] with a well-typed [Metadata] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun metadata(metadata: JsonField) = apply { this.metadata = metadata } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + */ + fun build(): Body = Body(externalPlanId, metadata, additionalProperties.toMutableMap()) + } private var validated: Boolean = false - fun validate(): Metadata = apply { + fun validate(): Body = apply { if (validated) { return@apply } + externalPlanId() + metadata().ifPresent { it.validate() } validated = true } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Body && externalPlanId == other.externalPlanId && metadata == other.metadata && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(externalPlanId, metadata, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{externalPlanId=$externalPlanId, metadata=$metadata, additionalProperties=$additionalProperties}" + } + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by setting + * the value to `null`, and the entire metadata mapping can be cleared by setting `metadata` to + * `null`. + */ + class Metadata + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -547,7 +546,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/Price.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/Price.kt index 556f22d9..e9e0f201 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/Price.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/Price.kt @@ -20,14 +20,13 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -974,85 +973,126 @@ private constructor( } } - @NoAutoDetect class UnitPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("unit_config") - @ExcludeMissing - private val unitConfig: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val unitConfig: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("unit_config") + @ExcludeMissing + unitConfig: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + unitConfig, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -1428,43 +1468,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - unitConfig().validate() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2063,21 +2075,55 @@ private constructor( checkRequired("priceType", priceType), checkRequired("unitConfig", unitConfig), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): UnitPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + unitConfig().validate() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2092,20 +2138,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2180,7 +2221,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -2201,20 +2253,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2247,21 +2302,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2359,10 +2408,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2612,20 +2673,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2658,21 +2722,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2768,10 +2826,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2790,20 +2860,23 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2836,21 +2909,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2949,10 +3016,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3077,20 +3156,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3119,21 +3197,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3226,10 +3298,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -3248,20 +3332,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -3302,21 +3389,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3434,10 +3515,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -3461,27 +3554,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3528,7 +3614,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -3548,20 +3644,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -3602,21 +3701,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3734,10 +3827,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -3954,17 +4059,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitConfig - @JsonCreator private constructor( - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of() + ) : this(unitAmount, mutableMapOf()) + /** * Rate per unit of usage * @@ -3984,20 +4091,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitConfig = apply { - if (validated) { - return@apply - } - - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4077,10 +4179,21 @@ private constructor( fun build(): UnitConfig = UnitConfig( checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UnitConfig = apply { + if (validated) { + return@apply + } + + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -4099,20 +4212,23 @@ private constructor( "UnitConfig{unitAmount=$unitAmount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4148,21 +4264,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4278,10 +4388,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -4318,85 +4440,126 @@ private constructor( "UnitPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, unitConfig=$unitConfig, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PackagePrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("package_config") - @ExcludeMissing - private val packageConfig: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val packageConfig: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("package_config") + @ExcludeMissing + packageConfig: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + packageConfig, + planPhaseOrder, + priceType, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -4773,43 +4936,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PackagePrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - packageConfig().validate() - planPhaseOrder() - priceType() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5409,21 +5544,55 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("priceType", priceType), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): PackagePrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + packageConfig().validate() + planPhaseOrder() + priceType() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -5438,20 +5607,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5526,7 +5690,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -5547,20 +5722,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -5593,21 +5771,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5705,10 +5877,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -5958,20 +6142,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -6004,21 +6191,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6114,10 +6295,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6136,20 +6329,23 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -6182,21 +6378,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6295,10 +6485,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6423,20 +6625,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -6465,21 +6666,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6572,10 +6767,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6594,20 +6801,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -6648,21 +6858,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6780,10 +6984,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6807,27 +7023,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6874,7 +7083,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -6894,20 +7113,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -6948,21 +7170,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7080,10 +7296,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7198,20 +7426,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class PackageConfig - @JsonCreator private constructor( - @JsonProperty("package_amount") - @ExcludeMissing - private val packageAmount: JsonField = JsonMissing.of(), - @JsonProperty("package_size") - @ExcludeMissing - private val packageSize: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val packageAmount: JsonField, + private val packageSize: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("package_amount") + @ExcludeMissing + packageAmount: JsonField = JsonMissing.of(), + @JsonProperty("package_size") + @ExcludeMissing + packageSize: JsonField = JsonMissing.of(), + ) : this(packageAmount, packageSize, mutableMapOf()) + /** * A currency amount to rate usage by * @@ -7251,21 +7482,15 @@ private constructor( @ExcludeMissing fun _packageSize(): JsonField = packageSize + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PackageConfig = apply { - if (validated) { - return@apply - } - - packageAmount() - packageSize() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7368,10 +7593,22 @@ private constructor( PackageConfig( checkRequired("packageAmount", packageAmount), checkRequired("packageSize", packageSize), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PackageConfig = apply { + if (validated) { + return@apply + } + + packageAmount() + packageSize() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7492,20 +7729,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -7541,21 +7781,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7671,10 +7905,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7711,85 +7957,126 @@ private constructor( "PackagePrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, packageConfig=$packageConfig, planPhaseOrder=$planPhaseOrder, priceType=$priceType, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MatrixPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("matrix_config") - @ExcludeMissing - private val matrixConfig: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val matrixConfig: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("matrix_config") + @ExcludeMissing + matrixConfig: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + matrixConfig, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -8166,43 +8453,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - matrixConfig().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8801,21 +9060,55 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("priceType", priceType), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): MatrixPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + matrixConfig().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -8830,20 +9123,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8918,7 +9206,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -8939,20 +9238,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -8985,21 +9287,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9097,10 +9393,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -9350,20 +9658,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -9396,21 +9707,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9506,10 +9811,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -9528,20 +9845,23 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -9574,21 +9894,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9687,10 +10001,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -9815,20 +10141,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -9857,21 +10182,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9964,10 +10283,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -9986,23 +10317,27 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MatrixConfig - @JsonCreator private constructor( - @JsonProperty("default_unit_amount") - @ExcludeMissing - private val defaultUnitAmount: JsonField = JsonMissing.of(), - @JsonProperty("dimensions") - @ExcludeMissing - private val dimensions: JsonField> = JsonMissing.of(), - @JsonProperty("matrix_values") - @ExcludeMissing - private val matrixValues: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val defaultUnitAmount: JsonField, + private val dimensions: JsonField>, + private val matrixValues: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("default_unit_amount") + @ExcludeMissing + defaultUnitAmount: JsonField = JsonMissing.of(), + @JsonProperty("dimensions") + @ExcludeMissing + dimensions: JsonField> = JsonMissing.of(), + @JsonProperty("matrix_values") + @ExcludeMissing + matrixValues: JsonField> = JsonMissing.of(), + ) : this(defaultUnitAmount, dimensions, matrixValues, mutableMapOf()) + /** * Default per unit rate for any usage not bucketed into a specified matrix_value * @@ -10060,22 +10395,15 @@ private constructor( @ExcludeMissing fun _matrixValues(): JsonField> = matrixValues + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixConfig = apply { - if (validated) { - return@apply - } - - defaultUnitAmount() - dimensions() - matrixValues().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10221,24 +10549,40 @@ private constructor( checkRequired("defaultUnitAmount", defaultUnitAmount), checkRequired("dimensions", dimensions).map { it.toImmutable() }, checkRequired("matrixValues", matrixValues).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): MatrixConfig = apply { + if (validated) { + return@apply + } + + defaultUnitAmount() + dimensions() + matrixValues().forEach { it.validate() } + validated = true + } + class MatrixValue - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + ) : this(dimensionValues, unitAmount, mutableMapOf()) + /** * One or two matrix keys to filter usage to this Matrix value by. For example, * ["region", "tier"] could be used to filter cloud usage by a cloud region and an @@ -10280,21 +10624,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixValue = apply { - if (validated) { - return@apply - } - - dimensionValues() - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10412,10 +10750,22 @@ private constructor( it.toImmutable() }, checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MatrixValue = apply { + if (validated) { + return@apply + } + + dimensionValues() + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -10452,20 +10802,23 @@ private constructor( "MatrixConfig{defaultUnitAmount=$defaultUnitAmount, dimensions=$dimensions, matrixValues=$matrixValues, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -10506,21 +10859,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10638,10 +10985,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -10665,27 +11024,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10732,7 +11084,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -10752,20 +11114,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -10806,21 +11171,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10938,10 +11297,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -11158,20 +11529,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -11207,21 +11581,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -11337,10 +11705,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -11377,85 +11757,126 @@ private constructor( "MatrixPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, matrixConfig=$matrixConfig, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class TieredPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("tiered_config") - @ExcludeMissing - private val tieredConfig: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val tieredConfig: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("tiered_config") + @ExcludeMissing + tieredConfig: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + tieredConfig, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -11832,43 +12253,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - tieredConfig().validate() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12467,21 +12860,55 @@ private constructor( checkRequired("priceType", priceType), checkRequired("tieredConfig", tieredConfig), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + tieredConfig().validate() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -12496,20 +12923,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12584,7 +13006,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -12605,20 +13038,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -12651,21 +13087,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12763,10 +13193,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -13016,20 +13458,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -13062,21 +13507,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13172,10 +13611,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -13194,20 +13645,23 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -13240,21 +13694,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13353,10 +13801,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -13481,20 +13941,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -13523,21 +13982,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13630,10 +14083,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -13652,20 +14117,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -13706,21 +14174,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13838,10 +14300,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -13865,27 +14339,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13932,7 +14399,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -13952,20 +14429,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -14006,21 +14486,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -14138,10 +14612,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -14358,17 +14844,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for rating based on total usage quantities into the specified tier * @@ -14385,20 +14873,15 @@ private constructor( */ @JsonProperty("tiers") @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -14490,27 +14973,42 @@ private constructor( fun build(): TieredConfig = TieredConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("first_unit") - @ExcludeMissing - private val firstUnit: JsonField = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonProperty("last_unit") - @ExcludeMissing - private val lastUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val firstUnit: JsonField, + private val unitAmount: JsonField, + private val lastUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("first_unit") + @ExcludeMissing + firstUnit: JsonField = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + @JsonProperty("last_unit") + @ExcludeMissing + lastUnit: JsonField = JsonMissing.of(), + ) : this(firstUnit, unitAmount, lastUnit, mutableMapOf()) + /** * Inclusive tier starting value * @@ -14568,22 +15066,15 @@ private constructor( @ExcludeMissing fun _lastUnit(): JsonField = lastUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - firstUnit() - unitAmount() - lastUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -14707,10 +15198,23 @@ private constructor( checkRequired("firstUnit", firstUnit), checkRequired("unitAmount", unitAmount), lastUnit, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + firstUnit() + unitAmount() + lastUnit() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -14747,20 +15251,23 @@ private constructor( "TieredConfig{tiers=$tiers, additionalProperties=$additionalProperties}" } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -14796,21 +15303,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -14926,10 +15427,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -14966,85 +15479,126 @@ private constructor( "TieredPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, tieredConfig=$tieredConfig, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class TieredBpsPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("tiered_bps_config") - @ExcludeMissing - private val tieredBpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val tieredBpsConfig: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("tiered_bps_config") + @ExcludeMissing + tieredBpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + tieredBpsConfig, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -15421,43 +15975,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredBpsPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - tieredBpsConfig().validate() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -16057,21 +16583,55 @@ private constructor( checkRequired("priceType", priceType), checkRequired("tieredBpsConfig", tieredBpsConfig), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredBpsPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + tieredBpsConfig().validate() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -16086,20 +16646,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -16174,7 +16729,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -16195,20 +16761,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -16241,21 +16810,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -16353,10 +16916,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -16606,20 +17181,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -16652,21 +17230,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -16762,10 +17334,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -16784,20 +17368,23 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -16830,21 +17417,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -16943,10 +17524,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -17071,20 +17664,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -17113,21 +17705,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -17220,10 +17806,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -17242,20 +17840,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -17296,21 +17897,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -17428,10 +18023,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -17455,27 +18062,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -17522,7 +18122,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -17542,20 +18152,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -17596,21 +18209,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -17728,10 +18335,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -17948,17 +18567,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredBpsConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for a Graduated BPS pricing model, where usage is bucketed into specified tiers * @@ -17975,20 +18596,15 @@ private constructor( */ @JsonProperty("tiers") @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredBpsConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -18083,30 +18699,44 @@ private constructor( fun build(): TieredBpsConfig = TieredBpsConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredBpsConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bps: JsonField, + private val minimumAmount: JsonField, + private val maximumAmount: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") @ExcludeMissing bps: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, minimumAmount, maximumAmount, perUnitMaximum, mutableMapOf()) + /** * Per-event basis point rate * @@ -18180,23 +18810,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - bps() - minimumAmount() - maximumAmount() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -18343,10 +18965,24 @@ private constructor( checkRequired("minimumAmount", minimumAmount), maximumAmount, perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + bps() + minimumAmount() + maximumAmount() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -18383,20 +19019,23 @@ private constructor( "TieredBpsConfig{tiers=$tiers, additionalProperties=$additionalProperties}" } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -18432,21 +19071,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -18562,10 +19195,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -18602,85 +19247,126 @@ private constructor( "TieredBpsPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, tieredBpsConfig=$tieredBpsConfig, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BpsPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("bps_config") - @ExcludeMissing - private val bpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val bpsConfig: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("bps_config") + @ExcludeMissing + bpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + bpsConfig, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -19056,43 +19742,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BpsPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - bpsConfig().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -19689,21 +20347,55 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("priceType", priceType), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): BpsPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + bpsConfig().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -19718,20 +20410,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -19806,7 +20493,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -19827,20 +20525,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -19873,21 +20574,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -19985,10 +20680,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -20113,20 +20820,21 @@ private constructor( "BillingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BpsConfig - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bps: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") @ExcludeMissing bps: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, perUnitMaximum, mutableMapOf()) + /** * Basis point take rate per event * @@ -20162,21 +20870,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BpsConfig = apply { - if (validated) { - return@apply - } - - bps() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -20278,10 +20980,22 @@ private constructor( BpsConfig( checkRequired("bps", bps), perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BpsConfig = apply { + if (validated) { + return@apply + } + + bps() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -20425,20 +21139,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -20471,21 +21188,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -20581,10 +21292,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -20603,20 +21326,23 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -20649,21 +21375,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -20762,10 +21482,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -20890,20 +21622,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -20932,21 +21663,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -21039,10 +21764,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -21061,20 +21798,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -21115,21 +21855,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -21247,10 +21981,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -21274,27 +22020,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -21341,7 +22080,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -21361,20 +22110,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -21415,21 +22167,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -21547,10 +22293,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -21767,20 +22525,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -21816,21 +22577,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -21946,10 +22701,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -21986,85 +22753,126 @@ private constructor( "BpsPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, bpsConfig=$bpsConfig, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BulkBpsPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("bulk_bps_config") - @ExcludeMissing - private val bulkBpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val bulkBpsConfig: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("bulk_bps_config") + @ExcludeMissing + bulkBpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + bulkBpsConfig, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -22441,43 +23249,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkBpsPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - bulkBpsConfig().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -23077,21 +23857,55 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("priceType", priceType), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): BulkBpsPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + bulkBpsConfig().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -23106,20 +23920,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -23194,7 +24003,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -23215,20 +24035,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -23261,21 +24084,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -23373,10 +24190,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -23501,17 +24330,19 @@ private constructor( "BillingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BulkBpsConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for a bulk BPS pricing model where all usage is aggregated to a single tier * based on total volume @@ -23529,20 +24360,15 @@ private constructor( */ @JsonProperty("tiers") @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkBpsConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -23637,27 +24463,40 @@ private constructor( fun build(): BulkBpsConfig = BulkBpsConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): BulkBpsConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bps: JsonField, + private val maximumAmount: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") @ExcludeMissing bps: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, maximumAmount, perUnitMaximum, mutableMapOf()) + /** * Basis points to rate on * @@ -23712,22 +24551,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - bps() - maximumAmount() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -23854,10 +24686,23 @@ private constructor( checkRequired("bps", bps), maximumAmount, perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + bps() + maximumAmount() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -24019,20 +24864,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -24065,21 +24913,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -24175,10 +25017,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -24197,20 +25051,23 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -24243,21 +25100,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -24356,10 +25207,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -24484,20 +25347,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -24526,21 +25388,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -24633,10 +25489,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -24655,20 +25523,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -24709,21 +25580,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -24841,10 +25706,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -24868,27 +25745,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -24935,7 +25805,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -24955,20 +25835,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -25009,21 +25892,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -25141,10 +26018,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -25361,20 +26250,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -25410,21 +26302,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -25540,10 +26426,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -25580,85 +26478,126 @@ private constructor( "BulkBpsPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, bulkBpsConfig=$bulkBpsConfig, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BulkPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("bulk_config") - @ExcludeMissing - private val bulkConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val bulkConfig: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("bulk_config") + @ExcludeMissing + bulkConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + bulkConfig, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -26034,43 +26973,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - bulkConfig().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -26669,21 +27580,55 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("priceType", priceType), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): BulkPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + bulkConfig().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -26698,20 +27643,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -26786,7 +27726,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -26807,20 +27758,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -26853,21 +27807,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -26965,10 +27913,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -27093,17 +28053,19 @@ private constructor( "BillingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BulkConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Bulk tiers for rating based on total usage volume * @@ -27120,20 +28082,15 @@ private constructor( */ @JsonProperty("tiers") @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -27225,24 +28182,38 @@ private constructor( fun build(): BulkConfig = BulkConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): BulkConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonProperty("maximum_units") - @ExcludeMissing - private val maximumUnits: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val unitAmount: JsonField, + private val maximumUnits: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + @JsonProperty("maximum_units") + @ExcludeMissing + maximumUnits: JsonField = JsonMissing.of(), + ) : this(unitAmount, maximumUnits, mutableMapOf()) + /** * Amount per unit * @@ -27281,21 +28252,15 @@ private constructor( @ExcludeMissing fun _maximumUnits(): JsonField = maximumUnits + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - unitAmount() - maximumUnits() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -27406,10 +28371,22 @@ private constructor( Tier( checkRequired("unitAmount", unitAmount), maximumUnits, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + unitAmount() + maximumUnits() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -27571,20 +28548,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -27617,21 +28597,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -27727,10 +28701,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -27749,20 +28735,23 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -27795,21 +28784,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -27908,10 +28891,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -28036,20 +29031,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -28078,21 +29072,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -28185,10 +29173,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -28207,20 +29207,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -28261,21 +29264,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -28393,10 +29390,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -28420,27 +29429,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -28487,7 +29489,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -28507,20 +29519,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -28561,21 +29576,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -28693,10 +29702,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -28913,20 +29934,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -28962,21 +29986,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -29092,10 +30110,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -29132,86 +30162,126 @@ private constructor( "BulkPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, bulkConfig=$bulkConfig, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class ThresholdTotalAmountPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("threshold_total_amount_config") - @ExcludeMissing - private val thresholdTotalAmountConfig: JsonField = - JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val thresholdTotalAmountConfig: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("threshold_total_amount_config") + @ExcludeMissing + thresholdTotalAmountConfig: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + thresholdTotalAmountConfig, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -29590,43 +30660,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ThresholdTotalAmountPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - thresholdTotalAmountConfig().validate() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -30228,21 +31270,55 @@ private constructor( checkRequired("priceType", priceType), checkRequired("thresholdTotalAmountConfig", thresholdTotalAmountConfig), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): ThresholdTotalAmountPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + thresholdTotalAmountConfig().validate() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -30257,20 +31333,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -30345,7 +31416,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -30366,20 +31448,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -30412,21 +31497,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -30524,10 +31603,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -30777,20 +31868,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -30823,21 +31917,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -30933,10 +32021,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -30955,20 +32055,23 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -31001,21 +32104,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -31114,10 +32211,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -31242,20 +32351,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -31284,21 +32392,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -31391,10 +32493,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -31413,20 +32527,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -31467,21 +32584,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -31599,10 +32710,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -31626,27 +32749,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -31693,7 +32809,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -31713,20 +32839,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -31767,21 +32896,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -31899,10 +33022,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -32119,27 +33254,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ThresholdTotalAmountConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ThresholdTotalAmountConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -32191,7 +33319,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ThresholdTotalAmountConfig = - ThresholdTotalAmountConfig(additionalProperties.toImmutable()) + ThresholdTotalAmountConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): ThresholdTotalAmountConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -32212,20 +33350,23 @@ private constructor( "ThresholdTotalAmountConfig{additionalProperties=$additionalProperties}" } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -32261,21 +33402,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -32391,10 +33526,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -32431,85 +33578,126 @@ private constructor( "ThresholdTotalAmountPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, thresholdTotalAmountConfig=$thresholdTotalAmountConfig, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class TieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("tiered_package_config") - @ExcludeMissing - private val tieredPackageConfig: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val tieredPackageConfig: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("tiered_package_config") + @ExcludeMissing + tieredPackageConfig: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + tieredPackageConfig, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -32887,43 +34075,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredPackagePrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - tieredPackageConfig().validate() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -33523,21 +34683,55 @@ private constructor( checkRequired("priceType", priceType), checkRequired("tieredPackageConfig", tieredPackageConfig), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredPackagePrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + tieredPackageConfig().validate() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -33552,20 +34746,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -33640,7 +34829,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -33661,20 +34861,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -33707,21 +34910,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -33819,10 +35016,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -34072,20 +35281,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -34118,21 +35330,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -34228,10 +35434,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -34250,20 +35468,23 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -34296,21 +35517,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -34409,10 +35624,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -34537,20 +35764,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -34579,21 +35805,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -34686,10 +35906,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -34708,20 +35940,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -34762,21 +35997,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -34894,10 +36123,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -34921,27 +36162,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -34988,7 +36222,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -35008,20 +36252,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -35062,21 +36309,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -35194,10 +36435,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -35414,27 +36667,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredPackageConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredPackageConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -35484,7 +36730,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageConfig = - TieredPackageConfig(additionalProperties.toImmutable()) + TieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -35505,20 +36761,23 @@ private constructor( "TieredPackageConfig{additionalProperties=$additionalProperties}" } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -35554,21 +36813,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -35684,10 +36937,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -35724,85 +36989,126 @@ private constructor( "TieredPackagePrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, tieredPackageConfig=$tieredPackageConfig, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class GroupedTieredPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("grouped_tiered_config") - @ExcludeMissing - private val groupedTieredConfig: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val groupedTieredConfig: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("grouped_tiered_config") + @ExcludeMissing + groupedTieredConfig: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + groupedTieredConfig, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -36180,43 +37486,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedTieredPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - groupedTieredConfig().validate() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -36816,21 +38094,55 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("priceType", priceType), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): GroupedTieredPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + groupedTieredConfig().validate() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -36845,20 +38157,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -36933,7 +38240,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -36954,20 +38272,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -37000,21 +38321,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -37112,10 +38427,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -37365,20 +38692,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -37411,21 +38741,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -37521,10 +38845,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -37543,27 +38879,20 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class GroupedTieredConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedTieredConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -37613,7 +38942,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredConfig = - GroupedTieredConfig(additionalProperties.toImmutable()) + GroupedTieredConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedTieredConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -37634,20 +38973,23 @@ private constructor( "GroupedTieredConfig{additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -37680,21 +39022,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -37793,10 +39129,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -37921,20 +39269,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -37963,21 +39310,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -38070,10 +39411,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -38092,20 +39445,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -38146,21 +39502,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -38278,10 +39628,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -38305,27 +39667,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -38372,7 +39727,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -38392,20 +39757,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -38446,21 +39814,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -38578,10 +39940,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -38798,20 +40172,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -38847,21 +40224,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -38977,10 +40348,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -39017,85 +40400,126 @@ private constructor( "GroupedTieredPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, groupedTieredConfig=$groupedTieredConfig, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class TieredWithMinimumPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("tiered_with_minimum_config") - @ExcludeMissing - private val tieredWithMinimumConfig: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val tieredWithMinimumConfig: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("tiered_with_minimum_config") + @ExcludeMissing + tieredWithMinimumConfig: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + tieredWithMinimumConfig, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -39473,43 +40897,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredWithMinimumPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - tieredWithMinimumConfig().validate() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -40109,21 +41505,55 @@ private constructor( checkRequired("priceType", priceType), checkRequired("tieredWithMinimumConfig", tieredWithMinimumConfig), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredWithMinimumPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + tieredWithMinimumConfig().validate() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -40138,20 +41568,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -40226,7 +41651,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -40247,20 +41683,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -40293,21 +41732,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -40405,10 +41838,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -40658,20 +42103,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -40704,21 +42152,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -40814,10 +42256,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -40836,20 +42290,23 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -40882,21 +42339,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -40995,10 +42446,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -41123,20 +42586,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -41165,21 +42627,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -41272,10 +42728,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -41294,20 +42762,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -41348,21 +42819,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -41480,10 +42945,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -41507,27 +42984,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -41574,7 +43044,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -41594,20 +43074,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -41648,21 +43131,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -41780,10 +43257,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -42000,27 +43489,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredWithMinimumConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredWithMinimumConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -42072,7 +43554,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithMinimumConfig = - TieredWithMinimumConfig(additionalProperties.toImmutable()) + TieredWithMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredWithMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -42093,20 +43585,23 @@ private constructor( "TieredWithMinimumConfig{additionalProperties=$additionalProperties}" } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -42142,21 +43637,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -42272,10 +43761,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -42312,86 +43813,127 @@ private constructor( "TieredWithMinimumPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, tieredWithMinimumConfig=$tieredWithMinimumConfig, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class TieredPackageWithMinimumPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("tiered_package_with_minimum_config") - @ExcludeMissing - private val tieredPackageWithMinimumConfig: JsonField = - JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val tieredPackageWithMinimumConfig: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("tiered_package_with_minimum_config") + @ExcludeMissing + tieredPackageWithMinimumConfig: JsonField = + JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + tieredPackageWithMinimumConfig, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -42770,43 +44312,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredPackageWithMinimumPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - tieredPackageWithMinimumConfig().validate() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -43415,21 +44929,55 @@ private constructor( checkRequired("priceType", priceType), checkRequired("tieredPackageWithMinimumConfig", tieredPackageWithMinimumConfig), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredPackageWithMinimumPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + tieredPackageWithMinimumConfig().validate() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -43444,20 +44992,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -43532,7 +45075,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -43553,20 +45107,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -43599,21 +45156,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -43711,10 +45262,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -43964,20 +45527,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -44010,21 +45576,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -44120,10 +45680,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -44142,20 +45714,23 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -44188,21 +45763,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -44301,10 +45870,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -44429,20 +46010,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -44471,21 +46051,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -44578,10 +46152,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -44600,20 +46186,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -44654,21 +46243,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -44786,10 +46369,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -44813,27 +46408,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -44880,7 +46468,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -44900,20 +46498,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -44954,21 +46555,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -45086,10 +46681,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -45306,27 +46913,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredPackageWithMinimumConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredPackageWithMinimumConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -45379,7 +46979,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageWithMinimumConfig = - TieredPackageWithMinimumConfig(additionalProperties.toImmutable()) + TieredPackageWithMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredPackageWithMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -45400,20 +47010,23 @@ private constructor( "TieredPackageWithMinimumConfig{additionalProperties=$additionalProperties}" } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -45449,21 +47062,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -45579,10 +47186,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -45619,86 +47238,126 @@ private constructor( "TieredPackageWithMinimumPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, tieredPackageWithMinimumConfig=$tieredPackageWithMinimumConfig, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PackageWithAllocationPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("package_with_allocation_config") - @ExcludeMissing - private val packageWithAllocationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val packageWithAllocationConfig: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("package_with_allocation_config") + @ExcludeMissing + packageWithAllocationConfig: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + packageWithAllocationConfig, + planPhaseOrder, + priceType, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -46077,43 +47736,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PackageWithAllocationPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - packageWithAllocationConfig().validate() - planPhaseOrder() - priceType() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -46717,21 +48348,55 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("priceType", priceType), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): PackageWithAllocationPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + packageWithAllocationConfig().validate() + planPhaseOrder() + priceType() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -46746,20 +48411,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -46834,7 +48494,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -46855,20 +48526,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -46901,21 +48575,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -47013,10 +48681,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -47266,20 +48946,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -47312,21 +48995,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -47422,10 +49099,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -47444,20 +49133,23 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -47490,21 +49182,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -47603,10 +49289,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -47731,20 +49429,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -47773,21 +49470,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -47880,10 +49571,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -47902,20 +49605,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -47956,21 +49662,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -48088,10 +49788,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -48115,27 +49827,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -48182,7 +49887,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -48202,20 +49917,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -48256,21 +49974,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -48388,10 +50100,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -48506,27 +50230,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class PackageWithAllocationConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PackageWithAllocationConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -48579,7 +50296,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): PackageWithAllocationConfig = - PackageWithAllocationConfig(additionalProperties.toImmutable()) + PackageWithAllocationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): PackageWithAllocationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -48702,20 +50429,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -48751,21 +50481,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -48881,10 +50605,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -48921,85 +50657,126 @@ private constructor( "PackageWithAllocationPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, packageWithAllocationConfig=$packageWithAllocationConfig, planPhaseOrder=$planPhaseOrder, priceType=$priceType, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class UnitWithPercentPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("unit_with_percent_config") - @ExcludeMissing - private val unitWithPercentConfig: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val unitWithPercentConfig: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("unit_with_percent_config") + @ExcludeMissing + unitWithPercentConfig: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + unitWithPercentConfig, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -49377,43 +51154,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitWithPercentPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - unitWithPercentConfig().validate() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -50014,21 +51763,55 @@ private constructor( checkRequired("priceType", priceType), checkRequired("unitWithPercentConfig", unitWithPercentConfig), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): UnitWithPercentPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + unitWithPercentConfig().validate() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -50043,20 +51826,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -50131,7 +51909,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -50152,20 +51941,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -50198,21 +51990,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -50310,10 +52096,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -50563,20 +52361,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -50609,21 +52410,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -50719,10 +52514,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -50741,20 +52548,23 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -50787,21 +52597,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -50900,10 +52704,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -51028,20 +52844,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -51070,21 +52885,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -51177,10 +52986,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -51199,20 +53020,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -51253,21 +53077,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -51385,10 +53203,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -51412,27 +53242,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -51479,7 +53302,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -51499,20 +53332,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -51553,21 +53389,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -51685,10 +53515,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -51905,27 +53747,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitWithPercentConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitWithPercentConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -51976,7 +53811,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithPercentConfig = - UnitWithPercentConfig(additionalProperties.toImmutable()) + UnitWithPercentConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): UnitWithPercentConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -51997,20 +53842,23 @@ private constructor( "UnitWithPercentConfig{additionalProperties=$additionalProperties}" } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -52046,21 +53894,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -52176,10 +54018,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -52216,86 +54070,126 @@ private constructor( "UnitWithPercentPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, unitWithPercentConfig=$unitWithPercentConfig, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MatrixWithAllocationPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("matrix_with_allocation_config") - @ExcludeMissing - private val matrixWithAllocationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val matrixWithAllocationConfig: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("matrix_with_allocation_config") + @ExcludeMissing + matrixWithAllocationConfig: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + matrixWithAllocationConfig, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -52674,43 +54568,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixWithAllocationPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - matrixWithAllocationConfig().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -53312,21 +55178,55 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("priceType", priceType), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): MatrixWithAllocationPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + matrixWithAllocationConfig().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -53341,20 +55241,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -53429,7 +55324,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -53450,20 +55356,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -53496,21 +55405,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -53608,10 +55511,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -53861,20 +55776,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -53907,21 +55825,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -54017,10 +55929,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -54039,20 +55963,23 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -54085,21 +56012,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -54198,10 +56119,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -54326,20 +56259,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -54368,21 +56300,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -54475,10 +56401,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -54497,26 +56435,31 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MatrixWithAllocationConfig - @JsonCreator private constructor( - @JsonProperty("allocation") - @ExcludeMissing - private val allocation: JsonField = JsonMissing.of(), - @JsonProperty("default_unit_amount") - @ExcludeMissing - private val defaultUnitAmount: JsonField = JsonMissing.of(), - @JsonProperty("dimensions") - @ExcludeMissing - private val dimensions: JsonField> = JsonMissing.of(), - @JsonProperty("matrix_values") - @ExcludeMissing - private val matrixValues: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allocation: JsonField, + private val defaultUnitAmount: JsonField, + private val dimensions: JsonField>, + private val matrixValues: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allocation") + @ExcludeMissing + allocation: JsonField = JsonMissing.of(), + @JsonProperty("default_unit_amount") + @ExcludeMissing + defaultUnitAmount: JsonField = JsonMissing.of(), + @JsonProperty("dimensions") + @ExcludeMissing + dimensions: JsonField> = JsonMissing.of(), + @JsonProperty("matrix_values") + @ExcludeMissing + matrixValues: JsonField> = JsonMissing.of(), + ) : this(allocation, defaultUnitAmount, dimensions, matrixValues, mutableMapOf()) + /** * Allocation to be used to calculate the price * @@ -54593,23 +56536,15 @@ private constructor( @ExcludeMissing fun _matrixValues(): JsonField> = matrixValues + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixWithAllocationConfig = apply { - if (validated) { - return@apply - } - - allocation() - defaultUnitAmount() - dimensions() - matrixValues().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -54777,24 +56712,41 @@ private constructor( checkRequired("defaultUnitAmount", defaultUnitAmount), checkRequired("dimensions", dimensions).map { it.toImmutable() }, checkRequired("matrixValues", matrixValues).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): MatrixWithAllocationConfig = apply { + if (validated) { + return@apply + } + + allocation() + defaultUnitAmount() + dimensions() + matrixValues().forEach { it.validate() } + validated = true + } + class MatrixValue - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + ) : this(dimensionValues, unitAmount, mutableMapOf()) + /** * One or two matrix keys to filter usage to this Matrix value by. For example, * ["region", "tier"] could be used to filter cloud usage by a cloud region and an @@ -54836,21 +56788,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixValue = apply { - if (validated) { - return@apply - } - - dimensionValues() - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -54968,10 +56914,22 @@ private constructor( it.toImmutable() }, checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MatrixValue = apply { + if (validated) { + return@apply + } + + dimensionValues() + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -55008,20 +56966,23 @@ private constructor( "MatrixWithAllocationConfig{allocation=$allocation, defaultUnitAmount=$defaultUnitAmount, dimensions=$dimensions, matrixValues=$matrixValues, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -55062,21 +57023,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -55194,10 +57149,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -55221,27 +57188,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -55288,7 +57248,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -55308,20 +57278,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -55362,21 +57335,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -55494,10 +57461,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -55714,20 +57693,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -55763,21 +57745,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -55893,10 +57869,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -55933,86 +57921,126 @@ private constructor( "MatrixWithAllocationPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, matrixWithAllocationConfig=$matrixWithAllocationConfig, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class TieredWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("tiered_with_proration_config") - @ExcludeMissing - private val tieredWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val tieredWithProrationConfig: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("tiered_with_proration_config") + @ExcludeMissing + tieredWithProrationConfig: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + tieredWithProrationConfig, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -56391,43 +58419,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredWithProrationPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - tieredWithProrationConfig().validate() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -57028,21 +59028,55 @@ private constructor( checkRequired("priceType", priceType), checkRequired("tieredWithProrationConfig", tieredWithProrationConfig), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredWithProrationPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + tieredWithProrationConfig().validate() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -57057,20 +59091,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -57145,7 +59174,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -57166,20 +59206,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -57212,21 +59255,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -57324,10 +59361,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -57577,20 +59626,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -57623,21 +59675,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -57733,10 +59779,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -57755,20 +59813,23 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -57801,21 +59862,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -57914,10 +59969,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -58042,20 +60109,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -58084,21 +60150,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -58191,10 +60251,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -58213,20 +60285,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -58267,21 +60342,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -58399,10 +60468,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -58426,27 +60507,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -58493,7 +60567,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -58513,20 +60597,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -58567,21 +60654,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -58699,10 +60780,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -58919,27 +61012,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredWithProrationConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredWithProrationConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -58991,7 +61077,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithProrationConfig = - TieredWithProrationConfig(additionalProperties.toImmutable()) + TieredWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -59012,20 +61108,23 @@ private constructor( "TieredWithProrationConfig{additionalProperties=$additionalProperties}" } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -59061,21 +61160,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -59191,10 +61284,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -59231,85 +61336,126 @@ private constructor( "TieredWithProrationPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, tieredWithProrationConfig=$tieredWithProrationConfig, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class UnitWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("unit_with_proration_config") - @ExcludeMissing - private val unitWithProrationConfig: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val unitWithProrationConfig: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("unit_with_proration_config") + @ExcludeMissing + unitWithProrationConfig: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + unitWithProrationConfig, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -59687,43 +61833,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitWithProrationPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - unitWithProrationConfig().validate() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -60323,21 +62441,55 @@ private constructor( checkRequired("priceType", priceType), checkRequired("unitWithProrationConfig", unitWithProrationConfig), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): UnitWithProrationPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + unitWithProrationConfig().validate() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -60352,20 +62504,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -60440,7 +62587,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -60461,20 +62619,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -60507,21 +62668,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -60619,10 +62774,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -60872,20 +63039,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -60918,21 +63088,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -61028,10 +63192,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -61050,20 +63226,23 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -61096,21 +63275,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -61209,10 +63382,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -61337,20 +63522,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -61379,21 +63563,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -61486,10 +63664,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -61508,20 +63698,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -61562,21 +63755,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -61694,10 +63881,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -61721,27 +63920,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -61788,7 +63980,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -61808,20 +64010,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -61862,21 +64067,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -61994,10 +64193,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -62214,27 +64425,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitWithProrationConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitWithProrationConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -62286,7 +64490,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithProrationConfig = - UnitWithProrationConfig(additionalProperties.toImmutable()) + UnitWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): UnitWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -62307,20 +64521,23 @@ private constructor( "UnitWithProrationConfig{additionalProperties=$additionalProperties}" } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -62356,21 +64573,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -62486,10 +64697,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -62526,85 +64749,126 @@ private constructor( "UnitWithProrationPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, unitWithProrationConfig=$unitWithProrationConfig, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class GroupedAllocationPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("grouped_allocation_config") - @ExcludeMissing - private val groupedAllocationConfig: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val groupedAllocationConfig: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("grouped_allocation_config") + @ExcludeMissing + groupedAllocationConfig: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + groupedAllocationConfig, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -62982,43 +65246,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedAllocationPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - groupedAllocationConfig().validate() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -63618,21 +65854,55 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("priceType", priceType), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): GroupedAllocationPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + groupedAllocationConfig().validate() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -63647,20 +65917,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -63735,7 +66000,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -63756,20 +66032,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -63802,21 +66081,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -63914,10 +66187,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -64167,20 +66452,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -64213,21 +66501,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -64323,10 +66605,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -64345,27 +66639,20 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class GroupedAllocationConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedAllocationConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -64417,7 +66704,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedAllocationConfig = - GroupedAllocationConfig(additionalProperties.toImmutable()) + GroupedAllocationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedAllocationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -64438,20 +66735,23 @@ private constructor( "GroupedAllocationConfig{additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -64484,21 +66784,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -64597,10 +66891,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -64725,20 +67031,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -64767,21 +67072,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -64874,10 +67173,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -64896,20 +67207,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -64950,21 +67264,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -65082,10 +67390,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -65109,27 +67429,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -65176,7 +67489,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -65196,20 +67519,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -65250,21 +67576,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -65382,10 +67702,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -65602,20 +67934,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -65651,21 +67986,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -65781,10 +68110,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -65821,86 +68162,127 @@ private constructor( "GroupedAllocationPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, groupedAllocationConfig=$groupedAllocationConfig, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class GroupedWithProratedMinimumPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("grouped_with_prorated_minimum_config") - @ExcludeMissing - private val groupedWithProratedMinimumConfig: JsonField = - JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val groupedWithProratedMinimumConfig: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("grouped_with_prorated_minimum_config") + @ExcludeMissing + groupedWithProratedMinimumConfig: JsonField = + JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + groupedWithProratedMinimumConfig, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -66279,43 +68661,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedWithProratedMinimumPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - groupedWithProratedMinimumConfig().validate() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -66928,21 +69282,55 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("priceType", priceType), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): GroupedWithProratedMinimumPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + groupedWithProratedMinimumConfig().validate() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -66957,20 +69345,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -67045,7 +69428,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -67066,20 +69460,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -67112,21 +69509,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -67224,10 +69615,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -67477,20 +69880,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -67523,21 +69929,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -67633,10 +70033,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -67655,17 +70067,75 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class GroupedWithProratedMinimumConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of + * [GroupedWithProratedMinimumConfig]. + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [GroupedWithProratedMinimumConfig]. */ + class Builder internal constructor() { + + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from( + groupedWithProratedMinimumConfig: GroupedWithProratedMinimumConfig + ) = apply { + additionalProperties = + groupedWithProratedMinimumConfig.additionalProperties.toMutableMap() + } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = + apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { + additionalProperties.remove(key) + } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [GroupedWithProratedMinimumConfig]. + * + * Further updates to this [Builder] will not mutate the returned instance. + */ + fun build(): GroupedWithProratedMinimumConfig = + GroupedWithProratedMinimumConfig(additionalProperties.toMutableMap()) + } private var validated: Boolean = false @@ -67677,197 +70147,139 @@ private constructor( validated = true } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is GroupedWithProratedMinimumConfig && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "GroupedWithProratedMinimumConfig{additionalProperties=$additionalProperties}" + } + + class InvoicingCycleConfiguration + private constructor( + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected + * value). + */ + fun duration(): Long = duration.getRequired("duration") + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected + * value). + */ + fun durationUnit(): DurationUnit = durationUnit.getRequired("duration_unit") + + /** + * Returns the raw JSON value of [duration]. + * + * Unlike [duration], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("duration") @ExcludeMissing fun _duration(): JsonField = duration + + /** + * Returns the raw JSON value of [durationUnit]. + * + * Unlike [durationUnit], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("duration_unit") + @ExcludeMissing + fun _durationUnit(): JsonField = durationUnit + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { /** * Returns a mutable builder for constructing an instance of - * [GroupedWithProratedMinimumConfig]. + * [InvoicingCycleConfiguration]. + * + * The following fields are required: + * ```java + * .duration() + * .durationUnit() + * ``` */ @JvmStatic fun builder() = Builder() } - /** A builder for [GroupedWithProratedMinimumConfig]. */ + /** A builder for [InvoicingCycleConfiguration]. */ class Builder internal constructor() { + private var duration: JsonField? = null + private var durationUnit: JsonField? = null private var additionalProperties: MutableMap = mutableMapOf() @JvmSynthetic - internal fun from( - groupedWithProratedMinimumConfig: GroupedWithProratedMinimumConfig - ) = apply { - additionalProperties = - groupedWithProratedMinimumConfig.additionalProperties.toMutableMap() - } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = - apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [GroupedWithProratedMinimumConfig]. - * - * Further updates to this [Builder] will not mutate the returned instance. - */ - fun build(): GroupedWithProratedMinimumConfig = - GroupedWithProratedMinimumConfig(additionalProperties.toImmutable()) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is GroupedWithProratedMinimumConfig && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "GroupedWithProratedMinimumConfig{additionalProperties=$additionalProperties}" - } - - @NoAutoDetect - class InvoicingCycleConfiguration - @JsonCreator - private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected - * value). - */ - fun duration(): Long = duration.getRequired("duration") - - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected - * value). - */ - fun durationUnit(): DurationUnit = durationUnit.getRequired("duration_unit") - - /** - * Returns the raw JSON value of [duration]. - * - * Unlike [duration], this method doesn't throw if the JSON field has an unexpected - * type. - */ - @JsonProperty("duration") @ExcludeMissing fun _duration(): JsonField = duration - - /** - * Returns the raw JSON value of [durationUnit]. - * - * Unlike [durationUnit], this method doesn't throw if the JSON field has an unexpected - * type. - */ - @JsonProperty("duration_unit") - @ExcludeMissing - fun _durationUnit(): JsonField = durationUnit - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of - * [InvoicingCycleConfiguration]. - * - * The following fields are required: - * ```java - * .duration() - * .durationUnit() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [InvoicingCycleConfiguration]. */ - class Builder internal constructor() { - - private var duration: JsonField? = null - private var durationUnit: JsonField? = null - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(invoicingCycleConfiguration: InvoicingCycleConfiguration) = - apply { - duration = invoicingCycleConfiguration.duration - durationUnit = invoicingCycleConfiguration.durationUnit - additionalProperties = - invoicingCycleConfiguration.additionalProperties.toMutableMap() - } - - fun duration(duration: Long) = duration(JsonField.of(duration)) - - /** - * Sets [Builder.duration] to an arbitrary JSON value. - * - * You should usually call [Builder.duration] with a well-typed [Long] value - * instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun duration(duration: JsonField) = apply { this.duration = duration } - - fun durationUnit(durationUnit: DurationUnit) = - durationUnit(JsonField.of(durationUnit)) - - /** - * Sets [Builder.durationUnit] to an arbitrary JSON value. - * - * You should usually call [Builder.durationUnit] with a well-typed [DurationUnit] - * value instead. This method is primarily for setting the field to an undocumented - * or not yet supported value. - */ - fun durationUnit(durationUnit: JsonField) = apply { - this.durationUnit = durationUnit + internal fun from(invoicingCycleConfiguration: InvoicingCycleConfiguration) = + apply { + duration = invoicingCycleConfiguration.duration + durationUnit = invoicingCycleConfiguration.durationUnit + additionalProperties = + invoicingCycleConfiguration.additionalProperties.toMutableMap() + } + + fun duration(duration: Long) = duration(JsonField.of(duration)) + + /** + * Sets [Builder.duration] to an arbitrary JSON value. + * + * You should usually call [Builder.duration] with a well-typed [Long] value + * instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. + */ + fun duration(duration: JsonField) = apply { this.duration = duration } + + fun durationUnit(durationUnit: DurationUnit) = + durationUnit(JsonField.of(durationUnit)) + + /** + * Sets [Builder.durationUnit] to an arbitrary JSON value. + * + * You should usually call [Builder.durationUnit] with a well-typed [DurationUnit] + * value instead. This method is primarily for setting the field to an undocumented + * or not yet supported value. + */ + fun durationUnit(durationUnit: JsonField) = apply { + this.durationUnit = durationUnit } fun additionalProperties(additionalProperties: Map) = apply { @@ -67909,10 +70321,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -68037,20 +70461,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -68079,21 +70502,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -68186,10 +70603,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -68208,20 +70637,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -68262,21 +70694,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -68394,10 +70820,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -68421,27 +70859,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -68488,7 +70919,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -68508,20 +70949,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -68562,21 +71006,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -68694,10 +71132,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -68914,20 +71364,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -68963,21 +71416,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -69093,10 +71540,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -69133,86 +71592,127 @@ private constructor( "GroupedWithProratedMinimumPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, groupedWithProratedMinimumConfig=$groupedWithProratedMinimumConfig, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class GroupedWithMeteredMinimumPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("grouped_with_metered_minimum_config") - @ExcludeMissing - private val groupedWithMeteredMinimumConfig: JsonField = - JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val groupedWithMeteredMinimumConfig: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("grouped_with_metered_minimum_config") + @ExcludeMissing + groupedWithMeteredMinimumConfig: JsonField = + JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + groupedWithMeteredMinimumConfig, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -69591,43 +72091,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedWithMeteredMinimumPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - groupedWithMeteredMinimumConfig().validate() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -70240,21 +72712,55 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("priceType", priceType), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): GroupedWithMeteredMinimumPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + groupedWithMeteredMinimumConfig().validate() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -70269,20 +72775,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -70357,7 +72858,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -70378,20 +72890,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -70424,21 +72939,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -70536,10 +73045,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -70789,20 +73310,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -70835,21 +73359,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -70945,10 +73463,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -70967,27 +73497,20 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class GroupedWithMeteredMinimumConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedWithMeteredMinimumConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -71041,7 +73564,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithMeteredMinimumConfig = - GroupedWithMeteredMinimumConfig(additionalProperties.toImmutable()) + GroupedWithMeteredMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedWithMeteredMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -71062,20 +73595,23 @@ private constructor( "GroupedWithMeteredMinimumConfig{additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -71108,21 +73644,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -71221,10 +73751,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -71349,20 +73891,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -71391,21 +73932,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -71498,10 +74033,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -71520,20 +74067,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -71574,21 +74124,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -71706,10 +74250,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -71733,27 +74289,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -71800,7 +74349,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -71820,20 +74379,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -71874,21 +74436,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -72006,10 +74562,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -72226,20 +74794,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -72275,21 +74846,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -72405,10 +74970,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -72445,86 +75022,126 @@ private constructor( "GroupedWithMeteredMinimumPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, groupedWithMeteredMinimumConfig=$groupedWithMeteredMinimumConfig, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MatrixWithDisplayNamePrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("matrix_with_display_name_config") - @ExcludeMissing - private val matrixWithDisplayNameConfig: JsonField = - JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val matrixWithDisplayNameConfig: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("matrix_with_display_name_config") + @ExcludeMissing + matrixWithDisplayNameConfig: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + matrixWithDisplayNameConfig, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -72903,43 +75520,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixWithDisplayNamePrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - matrixWithDisplayNameConfig().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -73543,21 +76132,55 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("priceType", priceType), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): MatrixWithDisplayNamePrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + matrixWithDisplayNameConfig().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -73572,20 +76195,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -73660,7 +76278,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -73681,20 +76310,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -73727,21 +76359,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -73839,10 +76465,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -74092,20 +76730,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -74138,21 +76779,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -74248,10 +76883,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -74270,20 +76917,23 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -74316,21 +76966,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -74429,10 +77073,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -74557,20 +77213,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -74599,21 +77254,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -74706,10 +77355,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -74728,27 +77389,20 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MatrixWithDisplayNameConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixWithDisplayNameConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -74801,7 +77455,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MatrixWithDisplayNameConfig = - MatrixWithDisplayNameConfig(additionalProperties.toImmutable()) + MatrixWithDisplayNameConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): MatrixWithDisplayNameConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -74822,20 +77486,23 @@ private constructor( "MatrixWithDisplayNameConfig{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -74876,21 +77543,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -75008,10 +77669,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -75035,27 +77708,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -75102,7 +77768,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -75122,20 +77798,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -75176,21 +77855,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -75308,10 +77981,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -75528,20 +78213,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -75577,21 +78265,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -75707,10 +78389,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -75747,85 +78441,126 @@ private constructor( "MatrixWithDisplayNamePrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, matrixWithDisplayNameConfig=$matrixWithDisplayNameConfig, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BulkWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("bulk_with_proration_config") - @ExcludeMissing - private val bulkWithProrationConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val bulkWithProrationConfig: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("bulk_with_proration_config") + @ExcludeMissing + bulkWithProrationConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + bulkWithProrationConfig, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -76203,43 +78938,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkWithProrationPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - bulkWithProrationConfig().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -76839,21 +79546,55 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("priceType", priceType), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): BulkWithProrationPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + bulkWithProrationConfig().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -76868,20 +79609,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -76956,7 +79692,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -76977,20 +79724,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -77023,21 +79773,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -77135,10 +79879,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -77263,27 +80019,20 @@ private constructor( "BillingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BulkWithProrationConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkWithProrationConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -77335,7 +80084,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): BulkWithProrationConfig = - BulkWithProrationConfig(additionalProperties.toImmutable()) + BulkWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BulkWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -77481,20 +80240,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -77527,21 +80289,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -77637,10 +80393,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -77659,20 +80427,23 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -77705,21 +80476,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -77818,10 +80583,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -77946,20 +80723,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -77988,21 +80764,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -78095,10 +80865,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -78117,20 +80899,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -78171,21 +80956,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -78303,10 +81082,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -78330,27 +81121,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -78397,7 +81181,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -78417,20 +81211,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -78471,21 +81268,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -78603,10 +81394,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -78823,20 +81626,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -78872,21 +81678,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -79002,10 +81802,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -79042,86 +81854,126 @@ private constructor( "BulkWithProrationPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, bulkWithProrationConfig=$bulkWithProrationConfig, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class GroupedTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("grouped_tiered_package_config") - @ExcludeMissing - private val groupedTieredPackageConfig: JsonField = - JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val groupedTieredPackageConfig: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("grouped_tiered_package_config") + @ExcludeMissing + groupedTieredPackageConfig: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + groupedTieredPackageConfig, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -79500,43 +82352,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedTieredPackagePrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - groupedTieredPackageConfig().validate() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -80138,21 +82962,55 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("priceType", priceType), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): GroupedTieredPackagePrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + groupedTieredPackageConfig().validate() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -80167,20 +83025,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -80255,7 +83108,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -80276,20 +83140,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -80322,21 +83189,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -80434,10 +83295,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -80687,20 +83560,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -80733,21 +83609,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -80843,10 +83713,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -80865,27 +83747,20 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class GroupedTieredPackageConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedTieredPackageConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -80937,7 +83812,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredPackageConfig = - GroupedTieredPackageConfig(additionalProperties.toImmutable()) + GroupedTieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedTieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -80958,20 +83843,23 @@ private constructor( "GroupedTieredPackageConfig{additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -81004,21 +83892,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -81117,10 +83999,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -81245,20 +84139,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -81287,21 +84180,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -81394,10 +84281,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -81416,20 +84315,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -81470,21 +84372,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -81602,10 +84498,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -81629,27 +84537,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -81696,7 +84597,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -81716,20 +84627,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -81770,21 +84684,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -81902,10 +84810,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -82122,20 +85042,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -82171,21 +85094,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -82301,10 +85218,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -82341,86 +85270,126 @@ private constructor( "GroupedTieredPackagePrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, groupedTieredPackageConfig=$groupedTieredPackageConfig, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MaxGroupTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("max_group_tiered_package_config") - @ExcludeMissing - private val maxGroupTieredPackageConfig: JsonField = - JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maxGroupTieredPackageConfig: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("max_group_tiered_package_config") + @ExcludeMissing + maxGroupTieredPackageConfig: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + maxGroupTieredPackageConfig, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -82799,43 +85768,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MaxGroupTieredPackagePrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maxGroupTieredPackageConfig().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -83439,21 +86380,55 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("priceType", priceType), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): MaxGroupTieredPackagePrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maxGroupTieredPackageConfig().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -83468,20 +86443,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -83556,7 +86526,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -83577,20 +86558,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -83623,21 +86607,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -83735,10 +86713,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -83988,20 +86978,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -84034,21 +87027,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -84144,10 +87131,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -84166,20 +87165,23 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -84212,21 +87214,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -84325,10 +87321,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -84453,20 +87461,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -84495,21 +87502,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -84602,10 +87603,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -84624,27 +87637,20 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MaxGroupTieredPackageConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MaxGroupTieredPackageConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -84697,7 +87703,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MaxGroupTieredPackageConfig = - MaxGroupTieredPackageConfig(additionalProperties.toImmutable()) + MaxGroupTieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): MaxGroupTieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -84718,20 +87734,23 @@ private constructor( "MaxGroupTieredPackageConfig{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -84772,21 +87791,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -84904,10 +87917,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -84931,27 +87956,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -84998,7 +88016,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -85018,20 +88046,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -85072,21 +88103,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -85204,10 +88229,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -85424,20 +88461,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -85473,21 +88513,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -85603,10 +88637,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -85643,87 +88689,128 @@ private constructor( "MaxGroupTieredPackagePrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maxGroupTieredPackageConfig=$maxGroupTieredPackageConfig, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class ScalableMatrixWithUnitPricingPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("scalable_matrix_with_unit_pricing_config") - @ExcludeMissing + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, private val scalableMatrixWithUnitPricingConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("scalable_matrix_with_unit_pricing_config") + @ExcludeMissing + scalableMatrixWithUnitPricingConfig: JsonField = + JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + scalableMatrixWithUnitPricingConfig, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -86104,43 +89191,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ScalableMatrixWithUnitPricingPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - scalableMatrixWithUnitPricingConfig().validate() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -86759,21 +89818,55 @@ private constructor( scalableMatrixWithUnitPricingConfig, ), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): ScalableMatrixWithUnitPricingPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + scalableMatrixWithUnitPricingConfig().validate() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -86788,20 +89881,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -86876,7 +89964,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -86897,20 +89996,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -86943,21 +90045,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -87055,10 +90151,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -87308,20 +90416,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -87354,21 +90465,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -87448,94 +90553,216 @@ private constructor( } /** - * Returns an immutable instance of [CreditAllocation]. + * Returns an immutable instance of [CreditAllocation]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .allowsRollover() + * .currency() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): CreditAllocation = + CreditAllocation( + checkRequired("allowsRollover", allowsRollover), + checkRequired("currency", currency), + additionalProperties.toMutableMap(), + ) + } + + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is CreditAllocation && allowsRollover == other.allowsRollover && currency == other.currency && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(allowsRollover, currency, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" + } + + class InvoicingCycleConfiguration + private constructor( + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected + * value). + */ + fun duration(): Long = duration.getRequired("duration") + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected + * value). + */ + fun durationUnit(): DurationUnit = durationUnit.getRequired("duration_unit") + + /** + * Returns the raw JSON value of [duration]. + * + * Unlike [duration], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("duration") @ExcludeMissing fun _duration(): JsonField = duration + + /** + * Returns the raw JSON value of [durationUnit]. + * + * Unlike [durationUnit], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("duration_unit") + @ExcludeMissing + fun _durationUnit(): JsonField = durationUnit + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of + * [InvoicingCycleConfiguration]. + * + * The following fields are required: + * ```java + * .duration() + * .durationUnit() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [InvoicingCycleConfiguration]. */ + class Builder internal constructor() { + + private var duration: JsonField? = null + private var durationUnit: JsonField? = null + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(invoicingCycleConfiguration: InvoicingCycleConfiguration) = + apply { + duration = invoicingCycleConfiguration.duration + durationUnit = invoicingCycleConfiguration.durationUnit + additionalProperties = + invoicingCycleConfiguration.additionalProperties.toMutableMap() + } + + fun duration(duration: Long) = duration(JsonField.of(duration)) + + /** + * Sets [Builder.duration] to an arbitrary JSON value. + * + * You should usually call [Builder.duration] with a well-typed [Long] value + * instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. + */ + fun duration(duration: JsonField) = apply { this.duration = duration } + + fun durationUnit(durationUnit: DurationUnit) = + durationUnit(JsonField.of(durationUnit)) + + /** + * Sets [Builder.durationUnit] to an arbitrary JSON value. + * + * You should usually call [Builder.durationUnit] with a well-typed [DurationUnit] + * value instead. This method is primarily for setting the field to an undocumented + * or not yet supported value. + */ + fun durationUnit(durationUnit: JsonField) = apply { + this.durationUnit = durationUnit + } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = + apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { + additionalProperties.remove(key) + } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [InvoicingCycleConfiguration]. * * Further updates to this [Builder] will not mutate the returned instance. * * The following fields are required: * ```java - * .allowsRollover() - * .currency() + * .duration() + * .durationUnit() * ``` * * @throws IllegalStateException if any required field is unset. */ - fun build(): CreditAllocation = - CreditAllocation( - checkRequired("allowsRollover", allowsRollover), - checkRequired("currency", currency), - additionalProperties.toImmutable(), + fun build(): InvoicingCycleConfiguration = + InvoicingCycleConfiguration( + checkRequired("duration", duration), + checkRequired("durationUnit", durationUnit), + additionalProperties.toMutableMap(), ) } - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is CreditAllocation && allowsRollover == other.allowsRollover && currency == other.currency && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(allowsRollover, currency, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" - } - - @NoAutoDetect - class InvoicingCycleConfiguration - @JsonCreator - private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected - * value). - */ - fun duration(): Long = duration.getRequired("duration") - - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected - * value). - */ - fun durationUnit(): DurationUnit = durationUnit.getRequired("duration_unit") - - /** - * Returns the raw JSON value of [duration]. - * - * Unlike [duration], this method doesn't throw if the JSON field has an unexpected - * type. - */ - @JsonProperty("duration") @ExcludeMissing fun _duration(): JsonField = duration - - /** - * Returns the raw JSON value of [durationUnit]. - * - * Unlike [durationUnit], this method doesn't throw if the JSON field has an unexpected - * type. - */ - @JsonProperty("duration_unit") - @ExcludeMissing - fun _durationUnit(): JsonField = durationUnit - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - private var validated: Boolean = false fun validate(): InvoicingCycleConfiguration = apply { @@ -87548,107 +90775,6 @@ private constructor( validated = true } - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of - * [InvoicingCycleConfiguration]. - * - * The following fields are required: - * ```java - * .duration() - * .durationUnit() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [InvoicingCycleConfiguration]. */ - class Builder internal constructor() { - - private var duration: JsonField? = null - private var durationUnit: JsonField? = null - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(invoicingCycleConfiguration: InvoicingCycleConfiguration) = - apply { - duration = invoicingCycleConfiguration.duration - durationUnit = invoicingCycleConfiguration.durationUnit - additionalProperties = - invoicingCycleConfiguration.additionalProperties.toMutableMap() - } - - fun duration(duration: Long) = duration(JsonField.of(duration)) - - /** - * Sets [Builder.duration] to an arbitrary JSON value. - * - * You should usually call [Builder.duration] with a well-typed [Long] value - * instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun duration(duration: JsonField) = apply { this.duration = duration } - - fun durationUnit(durationUnit: DurationUnit) = - durationUnit(JsonField.of(durationUnit)) - - /** - * Sets [Builder.durationUnit] to an arbitrary JSON value. - * - * You should usually call [Builder.durationUnit] with a well-typed [DurationUnit] - * value instead. This method is primarily for setting the field to an undocumented - * or not yet supported value. - */ - fun durationUnit(durationUnit: JsonField) = apply { - this.durationUnit = durationUnit - } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = - apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { - additionalProperties.remove(key) - } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [InvoicingCycleConfiguration]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .duration() - * .durationUnit() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): InvoicingCycleConfiguration = - InvoicingCycleConfiguration( - checkRequired("duration", duration), - checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), - ) - } - class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -87773,20 +90899,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -87815,21 +90940,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -87922,10 +91041,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -87944,20 +91075,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -87998,21 +91132,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -88130,10 +91258,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -88157,27 +91297,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -88224,7 +91357,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -88244,20 +91387,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -88298,21 +91444,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -88430,10 +91570,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -88651,27 +91803,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ScalableMatrixWithUnitPricingConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ScalableMatrixWithUnitPricingConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -88725,7 +91870,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithUnitPricingConfig = - ScalableMatrixWithUnitPricingConfig(additionalProperties.toImmutable()) + ScalableMatrixWithUnitPricingConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): ScalableMatrixWithUnitPricingConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -88746,20 +91901,23 @@ private constructor( "ScalableMatrixWithUnitPricingConfig{additionalProperties=$additionalProperties}" } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -88795,21 +91953,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -88925,10 +92077,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -88965,87 +92129,129 @@ private constructor( "ScalableMatrixWithUnitPricingPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, scalableMatrixWithUnitPricingConfig=$scalableMatrixWithUnitPricingConfig, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class ScalableMatrixWithTieredPricingPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("scalable_matrix_with_tiered_pricing_config") - @ExcludeMissing + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, private val scalableMatrixWithTieredPricingConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("scalable_matrix_with_tiered_pricing_config") + @ExcludeMissing + scalableMatrixWithTieredPricingConfig: + JsonField = + JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + scalableMatrixWithTieredPricingConfig, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -89426,43 +92632,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ScalableMatrixWithTieredPricingPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - scalableMatrixWithTieredPricingConfig().validate() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -90082,21 +93260,55 @@ private constructor( scalableMatrixWithTieredPricingConfig, ), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): ScalableMatrixWithTieredPricingPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + scalableMatrixWithTieredPricingConfig().validate() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -90111,20 +93323,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -90199,7 +93406,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -90220,20 +93438,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -90266,21 +93487,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -90378,10 +93593,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -90631,20 +93858,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -90677,21 +93907,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -90787,10 +94011,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -90809,20 +94045,23 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -90855,21 +94094,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -90968,10 +94201,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -91096,20 +94341,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -91138,21 +94382,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -91245,10 +94483,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -91267,20 +94517,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -91321,21 +94574,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -91453,10 +94700,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -91480,27 +94739,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -91547,7 +94799,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -91567,20 +94829,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -91621,21 +94886,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -91753,10 +95012,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -91974,27 +95245,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ScalableMatrixWithTieredPricingConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ScalableMatrixWithTieredPricingConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -92048,7 +95312,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithTieredPricingConfig = - ScalableMatrixWithTieredPricingConfig(additionalProperties.toImmutable()) + ScalableMatrixWithTieredPricingConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): ScalableMatrixWithTieredPricingConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -92069,20 +95343,23 @@ private constructor( "ScalableMatrixWithTieredPricingConfig{additionalProperties=$additionalProperties}" } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -92118,21 +95395,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -92248,10 +95519,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -92288,86 +95571,126 @@ private constructor( "ScalableMatrixWithTieredPricingPrice{id=$id, billableMetric=$billableMetric, billingCycleConfiguration=$billingCycleConfiguration, cadence=$cadence, conversionRate=$conversionRate, createdAt=$createdAt, creditAllocation=$creditAllocation, currency=$currency, discount=$discount, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoicingCycleConfiguration=$invoicingCycleConfiguration, item=$item, maximum=$maximum, maximumAmount=$maximumAmount, metadata=$metadata, minimum=$minimum, minimumAmount=$minimumAmount, modelType=$modelType, name=$name, planPhaseOrder=$planPhaseOrder, priceType=$priceType, scalableMatrixWithTieredPricingConfig=$scalableMatrixWithTieredPricingConfig, dimensionalPriceConfiguration=$dimensionalPriceConfiguration, additionalProperties=$additionalProperties}" } - @NoAutoDetect class CumulativeGroupedBulkPrice - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("credit_allocation") - @ExcludeMissing - private val creditAllocation: JsonField = JsonMissing.of(), - @JsonProperty("cumulative_grouped_bulk_config") - @ExcludeMissing - private val cumulativeGroupedBulkConfig: JsonField = - JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("discount") - @ExcludeMissing - private val discount: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("item") @ExcludeMissing private val item: JsonField = JsonMissing.of(), - @JsonProperty("maximum") - @ExcludeMissing - private val maximum: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum") - @ExcludeMissing - private val minimum: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price_type") - @ExcludeMissing - private val priceType: JsonField = JsonMissing.of(), - @JsonProperty("dimensional_price_configuration") - @ExcludeMissing - private val dimensionalPriceConfiguration: JsonField = - JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billableMetric: JsonField, + private val billingCycleConfiguration: JsonField, + private val cadence: JsonField, + private val conversionRate: JsonField, + private val createdAt: JsonField, + private val creditAllocation: JsonField, + private val cumulativeGroupedBulkConfig: JsonField, + private val currency: JsonField, + private val discount: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val item: JsonField, + private val maximum: JsonField, + private val maximumAmount: JsonField, + private val metadata: JsonField, + private val minimum: JsonField, + private val minimumAmount: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val planPhaseOrder: JsonField, + private val priceType: JsonField, + private val dimensionalPriceConfiguration: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("cadence") @ExcludeMissing cadence: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("credit_allocation") + @ExcludeMissing + creditAllocation: JsonField = JsonMissing.of(), + @JsonProperty("cumulative_grouped_bulk_config") + @ExcludeMissing + cumulativeGroupedBulkConfig: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("discount") + @ExcludeMissing + discount: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("item") @ExcludeMissing item: JsonField = JsonMissing.of(), + @JsonProperty("maximum") @ExcludeMissing maximum: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum") @ExcludeMissing minimum: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price_type") + @ExcludeMissing + priceType: JsonField = JsonMissing.of(), + @JsonProperty("dimensional_price_configuration") + @ExcludeMissing + dimensionalPriceConfiguration: JsonField = + JsonMissing.of(), + ) : this( + id, + billableMetric, + billingCycleConfiguration, + cadence, + conversionRate, + createdAt, + creditAllocation, + cumulativeGroupedBulkConfig, + currency, + discount, + externalPriceId, + fixedPriceQuantity, + invoicingCycleConfiguration, + item, + maximum, + maximumAmount, + metadata, + minimum, + minimumAmount, + modelType, + name, + planPhaseOrder, + priceType, + dimensionalPriceConfiguration, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -92746,43 +96069,15 @@ private constructor( fun _dimensionalPriceConfiguration(): JsonField = dimensionalPriceConfiguration + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CumulativeGroupedBulkPrice = apply { - if (validated) { - return@apply - } - - id() - billableMetric().ifPresent { it.validate() } - billingCycleConfiguration().validate() - cadence() - conversionRate() - createdAt() - creditAllocation().ifPresent { it.validate() } - cumulativeGroupedBulkConfig().validate() - currency() - discount().ifPresent { it.validate() } - externalPriceId() - fixedPriceQuantity() - invoicingCycleConfiguration().ifPresent { it.validate() } - item().validate() - maximum().ifPresent { it.validate() } - maximumAmount() - metadata().validate() - minimum().ifPresent { it.validate() } - minimumAmount() - modelType() - name() - planPhaseOrder() - priceType() - dimensionalPriceConfiguration().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -93386,21 +96681,55 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("priceType", priceType), dimensionalPriceConfiguration, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): CumulativeGroupedBulkPrice = apply { + if (validated) { + return@apply + } + + id() + billableMetric().ifPresent { it.validate() } + billingCycleConfiguration().validate() + cadence() + conversionRate() + createdAt() + creditAllocation().ifPresent { it.validate() } + cumulativeGroupedBulkConfig().validate() + currency() + discount().ifPresent { it.validate() } + externalPriceId() + fixedPriceQuantity() + invoicingCycleConfiguration().ifPresent { it.validate() } + item().validate() + maximum().ifPresent { it.validate() } + maximumAmount() + metadata().validate() + minimum().ifPresent { it.validate() } + minimumAmount() + modelType() + name() + planPhaseOrder() + priceType() + dimensionalPriceConfiguration().ifPresent { it.validate() } + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of() + ) : this(id, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -93415,20 +96744,15 @@ private constructor( */ @JsonProperty("id") @ExcludeMissing fun _id(): JsonField = id + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -93503,7 +96827,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): BillableMetric = - BillableMetric(checkRequired("id", id), additionalProperties.toImmutable()) + BillableMetric(checkRequired("id", id), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + validated = true } override fun equals(other: Any?): Boolean { @@ -93524,20 +96859,23 @@ private constructor( "BillableMetric{id=$id, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -93570,21 +96908,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -93682,10 +97014,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -93935,20 +97279,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CreditAllocation - @JsonCreator private constructor( - @JsonProperty("allows_rollover") - @ExcludeMissing - private val allowsRollover: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allowsRollover: JsonField, + private val currency: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allows_rollover") + @ExcludeMissing + allowsRollover: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + ) : this(allowsRollover, currency, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -93981,21 +97328,15 @@ private constructor( */ @JsonProperty("currency") @ExcludeMissing fun _currency(): JsonField = currency + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CreditAllocation = apply { - if (validated) { - return@apply - } - - allowsRollover() - currency() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -94091,10 +97432,22 @@ private constructor( CreditAllocation( checkRequired("allowsRollover", allowsRollover), checkRequired("currency", currency), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): CreditAllocation = apply { + if (validated) { + return@apply + } + + allowsRollover() + currency() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -94113,27 +97466,20 @@ private constructor( "CreditAllocation{allowsRollover=$allowsRollover, currency=$currency, additionalProperties=$additionalProperties}" } - @NoAutoDetect class CumulativeGroupedBulkConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CumulativeGroupedBulkConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -94186,7 +97532,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): CumulativeGroupedBulkConfig = - CumulativeGroupedBulkConfig(additionalProperties.toImmutable()) + CumulativeGroupedBulkConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): CumulativeGroupedBulkConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -94207,20 +97563,23 @@ private constructor( "CumulativeGroupedBulkConfig{additionalProperties=$additionalProperties}" } - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -94253,21 +97612,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -94366,10 +97719,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + class DurationUnit @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -94494,20 +97859,19 @@ private constructor( "InvoicingCycleConfiguration{duration=$duration, durationUnit=$durationUnit, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Item - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -94536,21 +97900,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Item = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -94643,10 +98001,22 @@ private constructor( Item( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Item = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -94665,20 +98035,23 @@ private constructor( "Item{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Maximum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, maximumAmount, mutableMapOf()) + /** * List of price_ids that this maximum amount applies to. For plan/plan phase maximums, * this can be a subset of prices. @@ -94719,21 +98092,15 @@ private constructor( @ExcludeMissing fun _maximumAmount(): JsonField = maximumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Maximum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - maximumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -94851,10 +98218,22 @@ private constructor( it.toImmutable() }, checkRequired("maximumAmount", maximumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Maximum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + maximumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -94878,27 +98257,20 @@ private constructor( * empty dictionary. Individual keys can be removed by setting the value to `null`, and the * entire metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -94945,7 +98317,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -94965,20 +98347,23 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class Minimum - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val minimumAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, minimumAmount, mutableMapOf()) + /** * List of price_ids that this minimum amount applies to. For plan/plan phase minimums, * this can be a subset of prices. @@ -95019,21 +98404,15 @@ private constructor( @ExcludeMissing fun _minimumAmount(): JsonField = minimumAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Minimum = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - minimumAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -95151,10 +98530,22 @@ private constructor( it.toImmutable() }, checkRequired("minimumAmount", minimumAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Minimum = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + minimumAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -95371,20 +98762,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class DimensionalPriceConfiguration - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("dimensional_price_group_id") - @ExcludeMissing - private val dimensionalPriceGroupId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val dimensionalPriceGroupId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("dimensional_price_group_id") + @ExcludeMissing + dimensionalPriceGroupId: JsonField = JsonMissing.of(), + ) : this(dimensionValues, dimensionalPriceGroupId, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -95420,21 +98814,15 @@ private constructor( @ExcludeMissing fun _dimensionalPriceGroupId(): JsonField = dimensionalPriceGroupId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): DimensionalPriceConfiguration = apply { - if (validated) { - return@apply - } - - dimensionValues() - dimensionalPriceGroupId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -95550,10 +98938,22 @@ private constructor( DimensionalPriceConfiguration( checkRequired("dimensionValues", dimensionValues).map { it.toImmutable() }, checkRequired("dimensionalPriceGroupId", dimensionalPriceGroupId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): DimensionalPriceConfiguration = apply { + if (validated) { + return@apply + } + + dimensionValues() + dimensionalPriceGroupId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceCreateParams.kt index 02b9f919..16c1aeb7 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceCreateParams.kt @@ -20,16 +20,15 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -59,6 +58,388 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [PriceCreateParams]. + * + * The following fields are required: + * ```java + * .body() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [PriceCreateParams]. */ + class Builder internal constructor() { + + private var body: Body? = null + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from(priceCreateParams: PriceCreateParams) = apply { + body = priceCreateParams.body + additionalHeaders = priceCreateParams.additionalHeaders.toBuilder() + additionalQueryParams = priceCreateParams.additionalQueryParams.toBuilder() + } + + fun body(body: Body) = apply { this.body = body } + + /** Alias for calling [body] with `Body.ofNewFloatingUnitPrice(newFloatingUnitPrice)`. */ + fun body(newFloatingUnitPrice: Body.NewFloatingUnitPrice) = + body(Body.ofNewFloatingUnitPrice(newFloatingUnitPrice)) + + /** + * Alias for calling [body] with `Body.ofNewFloatingPackagePrice(newFloatingPackagePrice)`. + */ + fun body(newFloatingPackagePrice: Body.NewFloatingPackagePrice) = + body(Body.ofNewFloatingPackagePrice(newFloatingPackagePrice)) + + /** + * Alias for calling [body] with `Body.ofNewFloatingMatrixPrice(newFloatingMatrixPrice)`. + */ + fun body(newFloatingMatrixPrice: Body.NewFloatingMatrixPrice) = + body(Body.ofNewFloatingMatrixPrice(newFloatingMatrixPrice)) + + /** + * Alias for calling [body] with + * `Body.ofNewFloatingMatrixWithAllocationPrice(newFloatingMatrixWithAllocationPrice)`. + */ + fun body(newFloatingMatrixWithAllocationPrice: Body.NewFloatingMatrixWithAllocationPrice) = + body(Body.ofNewFloatingMatrixWithAllocationPrice(newFloatingMatrixWithAllocationPrice)) + + /** + * Alias for calling [body] with `Body.ofNewFloatingTieredPrice(newFloatingTieredPrice)`. + */ + fun body(newFloatingTieredPrice: Body.NewFloatingTieredPrice) = + body(Body.ofNewFloatingTieredPrice(newFloatingTieredPrice)) + + /** + * Alias for calling [body] with + * `Body.ofNewFloatingTieredBpsPrice(newFloatingTieredBpsPrice)`. + */ + fun body(newFloatingTieredBpsPrice: Body.NewFloatingTieredBpsPrice) = + body(Body.ofNewFloatingTieredBpsPrice(newFloatingTieredBpsPrice)) + + /** Alias for calling [body] with `Body.ofNewFloatingBpsPrice(newFloatingBpsPrice)`. */ + fun body(newFloatingBpsPrice: Body.NewFloatingBpsPrice) = + body(Body.ofNewFloatingBpsPrice(newFloatingBpsPrice)) + + /** + * Alias for calling [body] with `Body.ofNewFloatingBulkBpsPrice(newFloatingBulkBpsPrice)`. + */ + fun body(newFloatingBulkBpsPrice: Body.NewFloatingBulkBpsPrice) = + body(Body.ofNewFloatingBulkBpsPrice(newFloatingBulkBpsPrice)) + + /** Alias for calling [body] with `Body.ofNewFloatingBulkPrice(newFloatingBulkPrice)`. */ + fun body(newFloatingBulkPrice: Body.NewFloatingBulkPrice) = + body(Body.ofNewFloatingBulkPrice(newFloatingBulkPrice)) + + /** + * Alias for calling [body] with + * `Body.ofNewFloatingThresholdTotalAmountPrice(newFloatingThresholdTotalAmountPrice)`. + */ + fun body(newFloatingThresholdTotalAmountPrice: Body.NewFloatingThresholdTotalAmountPrice) = + body(Body.ofNewFloatingThresholdTotalAmountPrice(newFloatingThresholdTotalAmountPrice)) + + /** + * Alias for calling [body] with + * `Body.ofNewFloatingTieredPackagePrice(newFloatingTieredPackagePrice)`. + */ + fun body(newFloatingTieredPackagePrice: Body.NewFloatingTieredPackagePrice) = + body(Body.ofNewFloatingTieredPackagePrice(newFloatingTieredPackagePrice)) + + /** + * Alias for calling [body] with + * `Body.ofNewFloatingGroupedTieredPrice(newFloatingGroupedTieredPrice)`. + */ + fun body(newFloatingGroupedTieredPrice: Body.NewFloatingGroupedTieredPrice) = + body(Body.ofNewFloatingGroupedTieredPrice(newFloatingGroupedTieredPrice)) + + /** + * Alias for calling [body] with + * `Body.ofNewFloatingMaxGroupTieredPackagePrice(newFloatingMaxGroupTieredPackagePrice)`. + */ + fun body( + newFloatingMaxGroupTieredPackagePrice: Body.NewFloatingMaxGroupTieredPackagePrice + ) = + body( + Body.ofNewFloatingMaxGroupTieredPackagePrice(newFloatingMaxGroupTieredPackagePrice) + ) + + /** + * Alias for calling [body] with + * `Body.ofNewFloatingTieredWithMinimumPrice(newFloatingTieredWithMinimumPrice)`. + */ + fun body(newFloatingTieredWithMinimumPrice: Body.NewFloatingTieredWithMinimumPrice) = + body(Body.ofNewFloatingTieredWithMinimumPrice(newFloatingTieredWithMinimumPrice)) + + /** + * Alias for calling [body] with + * `Body.ofNewFloatingPackageWithAllocationPrice(newFloatingPackageWithAllocationPrice)`. + */ + fun body( + newFloatingPackageWithAllocationPrice: Body.NewFloatingPackageWithAllocationPrice + ) = + body( + Body.ofNewFloatingPackageWithAllocationPrice(newFloatingPackageWithAllocationPrice) + ) + + /** + * Alias for calling [body] with + * `Body.ofNewFloatingTieredPackageWithMinimumPrice(newFloatingTieredPackageWithMinimumPrice)`. + */ + fun body( + newFloatingTieredPackageWithMinimumPrice: Body.NewFloatingTieredPackageWithMinimumPrice + ) = + body( + Body.ofNewFloatingTieredPackageWithMinimumPrice( + newFloatingTieredPackageWithMinimumPrice + ) + ) + + /** + * Alias for calling [body] with + * `Body.ofNewFloatingUnitWithPercentPrice(newFloatingUnitWithPercentPrice)`. + */ + fun body(newFloatingUnitWithPercentPrice: Body.NewFloatingUnitWithPercentPrice) = + body(Body.ofNewFloatingUnitWithPercentPrice(newFloatingUnitWithPercentPrice)) + + /** + * Alias for calling [body] with + * `Body.ofNewFloatingTieredWithProrationPrice(newFloatingTieredWithProrationPrice)`. + */ + fun body(newFloatingTieredWithProrationPrice: Body.NewFloatingTieredWithProrationPrice) = + body(Body.ofNewFloatingTieredWithProrationPrice(newFloatingTieredWithProrationPrice)) + + /** + * Alias for calling [body] with + * `Body.ofNewFloatingUnitWithProrationPrice(newFloatingUnitWithProrationPrice)`. + */ + fun body(newFloatingUnitWithProrationPrice: Body.NewFloatingUnitWithProrationPrice) = + body(Body.ofNewFloatingUnitWithProrationPrice(newFloatingUnitWithProrationPrice)) + + /** + * Alias for calling [body] with + * `Body.ofNewFloatingGroupedAllocationPrice(newFloatingGroupedAllocationPrice)`. + */ + fun body(newFloatingGroupedAllocationPrice: Body.NewFloatingGroupedAllocationPrice) = + body(Body.ofNewFloatingGroupedAllocationPrice(newFloatingGroupedAllocationPrice)) + + /** + * Alias for calling [body] with + * `Body.ofNewFloatingGroupedWithProratedMinimumPrice(newFloatingGroupedWithProratedMinimumPrice)`. + */ + fun body( + newFloatingGroupedWithProratedMinimumPrice: + Body.NewFloatingGroupedWithProratedMinimumPrice + ) = + body( + Body.ofNewFloatingGroupedWithProratedMinimumPrice( + newFloatingGroupedWithProratedMinimumPrice + ) + ) + + /** + * Alias for calling [body] with + * `Body.ofNewFloatingGroupedWithMeteredMinimumPrice(newFloatingGroupedWithMeteredMinimumPrice)`. + */ + fun body( + newFloatingGroupedWithMeteredMinimumPrice: + Body.NewFloatingGroupedWithMeteredMinimumPrice + ) = + body( + Body.ofNewFloatingGroupedWithMeteredMinimumPrice( + newFloatingGroupedWithMeteredMinimumPrice + ) + ) + + /** + * Alias for calling [body] with + * `Body.ofNewFloatingMatrixWithDisplayNamePrice(newFloatingMatrixWithDisplayNamePrice)`. + */ + fun body( + newFloatingMatrixWithDisplayNamePrice: Body.NewFloatingMatrixWithDisplayNamePrice + ) = + body( + Body.ofNewFloatingMatrixWithDisplayNamePrice(newFloatingMatrixWithDisplayNamePrice) + ) + + /** + * Alias for calling [body] with + * `Body.ofNewFloatingBulkWithProrationPrice(newFloatingBulkWithProrationPrice)`. + */ + fun body(newFloatingBulkWithProrationPrice: Body.NewFloatingBulkWithProrationPrice) = + body(Body.ofNewFloatingBulkWithProrationPrice(newFloatingBulkWithProrationPrice)) + + /** + * Alias for calling [body] with + * `Body.ofNewFloatingGroupedTieredPackagePrice(newFloatingGroupedTieredPackagePrice)`. + */ + fun body(newFloatingGroupedTieredPackagePrice: Body.NewFloatingGroupedTieredPackagePrice) = + body(Body.ofNewFloatingGroupedTieredPackagePrice(newFloatingGroupedTieredPackagePrice)) + + /** + * Alias for calling [body] with + * `Body.ofNewFloatingScalableMatrixWithUnitPricingPrice(newFloatingScalableMatrixWithUnitPricingPrice)`. + */ + fun body( + newFloatingScalableMatrixWithUnitPricingPrice: + Body.NewFloatingScalableMatrixWithUnitPricingPrice + ) = + body( + Body.ofNewFloatingScalableMatrixWithUnitPricingPrice( + newFloatingScalableMatrixWithUnitPricingPrice + ) + ) + + /** + * Alias for calling [body] with + * `Body.ofNewFloatingScalableMatrixWithTieredPricingPrice(newFloatingScalableMatrixWithTieredPricingPrice)`. + */ + fun body( + newFloatingScalableMatrixWithTieredPricingPrice: + Body.NewFloatingScalableMatrixWithTieredPricingPrice + ) = + body( + Body.ofNewFloatingScalableMatrixWithTieredPricingPrice( + newFloatingScalableMatrixWithTieredPricingPrice + ) + ) + + /** + * Alias for calling [body] with + * `Body.ofNewFloatingCumulativeGroupedBulkPrice(newFloatingCumulativeGroupedBulkPrice)`. + */ + fun body( + newFloatingCumulativeGroupedBulkPrice: Body.NewFloatingCumulativeGroupedBulkPrice + ) = + body( + Body.ofNewFloatingCumulativeGroupedBulkPrice(newFloatingCumulativeGroupedBulkPrice) + ) + + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) + } + + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } + + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } + + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) + } + + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } + + /** + * Returns an immutable instance of [PriceCreateParams]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .body() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): PriceCreateParams = + PriceCreateParams( + checkRequired("body", body), + additionalHeaders.build(), + additionalQueryParams.build(), + ) + } + @JvmSynthetic internal fun _body(): Body = body override fun _headers(): Headers = additionalHeaders @@ -1392,61 +1773,91 @@ private constructor( } } - @NoAutoDetect class NewFloatingUnitPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("unit_config") - @ExcludeMissing - private val unitConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val unitConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("unit_config") + @ExcludeMissing + unitConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + unitConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -1727,34 +2138,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingUnitPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - unitConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2183,10 +2575,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingUnitPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + unitConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2414,17 +2831,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitConfig - @JsonCreator private constructor( - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of() + ) : this(unitAmount, mutableMapOf()) + /** * Rate per unit of usage * @@ -2444,20 +2863,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitConfig = apply { - if (validated) { - return@apply - } - - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2537,10 +2951,21 @@ private constructor( fun build(): UnitConfig = UnitConfig( checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UnitConfig = apply { + if (validated) { + return@apply + } + + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -2562,20 +2987,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -2614,21 +3042,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2729,10 +3151,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -2864,20 +3298,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -2916,21 +3353,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3031,10 +3462,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -3167,27 +3610,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3234,7 +3670,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -3272,61 +3718,91 @@ private constructor( "NewFloatingUnitPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, unitConfig=$unitConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("package_config") - @ExcludeMissing - private val packageConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val packageConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("package_config") + @ExcludeMissing + packageConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + packageConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -3607,34 +4083,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - packageConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4067,10 +4524,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + packageConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4298,20 +4780,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class PackageConfig - @JsonCreator private constructor( - @JsonProperty("package_amount") - @ExcludeMissing - private val packageAmount: JsonField = JsonMissing.of(), - @JsonProperty("package_size") - @ExcludeMissing - private val packageSize: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val packageAmount: JsonField, + private val packageSize: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("package_amount") + @ExcludeMissing + packageAmount: JsonField = JsonMissing.of(), + @JsonProperty("package_size") + @ExcludeMissing + packageSize: JsonField = JsonMissing.of(), + ) : this(packageAmount, packageSize, mutableMapOf()) + /** * A currency amount to rate usage by * @@ -4351,21 +4836,15 @@ private constructor( @ExcludeMissing fun _packageSize(): JsonField = packageSize + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PackageConfig = apply { - if (validated) { - return@apply - } - - packageAmount() - packageSize() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4468,10 +4947,22 @@ private constructor( PackageConfig( checkRequired("packageAmount", packageAmount), checkRequired("packageSize", packageSize), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PackageConfig = apply { + if (validated) { + return@apply + } + + packageAmount() + packageSize() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -4493,20 +4984,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -4545,21 +5039,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4660,10 +5148,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -4795,20 +5295,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -4847,21 +5350,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4962,10 +5459,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -5098,27 +5607,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5165,7 +5667,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -5203,61 +5715,91 @@ private constructor( "NewFloatingPackagePrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, packageConfig=$packageConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingMatrixPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("matrix_config") - @ExcludeMissing - private val matrixConfig: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val matrixConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("matrix_config") + @ExcludeMissing + matrixConfig: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + matrixConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -5538,34 +6080,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingMatrixPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - matrixConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5997,10 +6520,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingMatrixPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + matrixConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6130,23 +6678,27 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MatrixConfig - @JsonCreator private constructor( - @JsonProperty("default_unit_amount") - @ExcludeMissing - private val defaultUnitAmount: JsonField = JsonMissing.of(), - @JsonProperty("dimensions") - @ExcludeMissing - private val dimensions: JsonField> = JsonMissing.of(), - @JsonProperty("matrix_values") - @ExcludeMissing - private val matrixValues: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val defaultUnitAmount: JsonField, + private val dimensions: JsonField>, + private val matrixValues: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("default_unit_amount") + @ExcludeMissing + defaultUnitAmount: JsonField = JsonMissing.of(), + @JsonProperty("dimensions") + @ExcludeMissing + dimensions: JsonField> = JsonMissing.of(), + @JsonProperty("matrix_values") + @ExcludeMissing + matrixValues: JsonField> = JsonMissing.of(), + ) : this(defaultUnitAmount, dimensions, matrixValues, mutableMapOf()) + /** * Default per unit rate for any usage not bucketed into a specified matrix_value * @@ -6205,22 +6757,15 @@ private constructor( @ExcludeMissing fun _matrixValues(): JsonField> = matrixValues + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixConfig = apply { - if (validated) { - return@apply - } - - defaultUnitAmount() - dimensions() - matrixValues().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6367,24 +6912,40 @@ private constructor( checkRequired("defaultUnitAmount", defaultUnitAmount), checkRequired("dimensions", dimensions).map { it.toImmutable() }, checkRequired("matrixValues", matrixValues).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): MatrixConfig = apply { + if (validated) { + return@apply + } + + defaultUnitAmount() + dimensions() + matrixValues().forEach { it.validate() } + validated = true + } + class MatrixValue - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + ) : this(dimensionValues, unitAmount, mutableMapOf()) + /** * One or two matrix keys to filter usage to this Matrix value by. For example, * ["region", "tier"] could be used to filter cloud usage by a cloud region and @@ -6426,21 +6987,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixValue = apply { - if (validated) { - return@apply - } - - dimensionValues() - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6560,10 +7115,22 @@ private constructor( it.toImmutable() }, checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MatrixValue = apply { + if (validated) { + return@apply + } + + dimensionValues() + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6701,20 +7268,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -6753,21 +7323,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6868,10 +7432,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -7003,20 +7579,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -7055,21 +7634,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7170,10 +7743,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -7306,27 +7891,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7373,7 +7951,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -7411,62 +7999,92 @@ private constructor( "NewFloatingMatrixPrice{cadence=$cadence, currency=$currency, itemId=$itemId, matrixConfig=$matrixConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingMatrixWithAllocationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("matrix_with_allocation_config") - @ExcludeMissing - private val matrixWithAllocationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val matrixWithAllocationConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("matrix_with_allocation_config") + @ExcludeMissing + matrixWithAllocationConfig: JsonField = + JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + matrixWithAllocationConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -7749,34 +8367,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingMatrixWithAllocationPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - matrixWithAllocationConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8215,10 +8814,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingMatrixWithAllocationPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + matrixWithAllocationConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -8348,26 +8972,31 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MatrixWithAllocationConfig - @JsonCreator private constructor( - @JsonProperty("allocation") - @ExcludeMissing - private val allocation: JsonField = JsonMissing.of(), - @JsonProperty("default_unit_amount") - @ExcludeMissing - private val defaultUnitAmount: JsonField = JsonMissing.of(), - @JsonProperty("dimensions") - @ExcludeMissing - private val dimensions: JsonField> = JsonMissing.of(), - @JsonProperty("matrix_values") - @ExcludeMissing - private val matrixValues: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allocation: JsonField, + private val defaultUnitAmount: JsonField, + private val dimensions: JsonField>, + private val matrixValues: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allocation") + @ExcludeMissing + allocation: JsonField = JsonMissing.of(), + @JsonProperty("default_unit_amount") + @ExcludeMissing + defaultUnitAmount: JsonField = JsonMissing.of(), + @JsonProperty("dimensions") + @ExcludeMissing + dimensions: JsonField> = JsonMissing.of(), + @JsonProperty("matrix_values") + @ExcludeMissing + matrixValues: JsonField> = JsonMissing.of(), + ) : this(allocation, defaultUnitAmount, dimensions, matrixValues, mutableMapOf()) + /** * Allocation to be used to calculate the price * @@ -8445,23 +9074,15 @@ private constructor( @ExcludeMissing fun _matrixValues(): JsonField> = matrixValues + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixWithAllocationConfig = apply { - if (validated) { - return@apply - } - - allocation() - defaultUnitAmount() - dimensions() - matrixValues().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8632,24 +9253,41 @@ private constructor( checkRequired("defaultUnitAmount", defaultUnitAmount), checkRequired("dimensions", dimensions).map { it.toImmutable() }, checkRequired("matrixValues", matrixValues).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): MatrixWithAllocationConfig = apply { + if (validated) { + return@apply + } + + allocation() + defaultUnitAmount() + dimensions() + matrixValues().forEach { it.validate() } + validated = true + } + class MatrixValue - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + ) : this(dimensionValues, unitAmount, mutableMapOf()) + /** * One or two matrix keys to filter usage to this Matrix value by. For example, * ["region", "tier"] could be used to filter cloud usage by a cloud region and @@ -8691,21 +9329,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixValue = apply { - if (validated) { - return@apply - } - - dimensionValues() - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8825,10 +9457,22 @@ private constructor( it.toImmutable() }, checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MatrixValue = apply { + if (validated) { + return@apply + } + + dimensionValues() + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8966,20 +9610,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -9018,21 +9665,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9133,10 +9774,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -9268,20 +9921,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -9320,21 +9976,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9435,10 +10085,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -9571,27 +10233,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9638,7 +10293,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -9676,61 +10341,91 @@ private constructor( "NewFloatingMatrixWithAllocationPrice{cadence=$cadence, currency=$currency, itemId=$itemId, matrixWithAllocationConfig=$matrixWithAllocationConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingTieredPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_config") - @ExcludeMissing - private val tieredConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_config") + @ExcludeMissing + tieredConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + tieredConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -10011,34 +10706,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingTieredPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - tieredConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10470,10 +11146,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingTieredPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + tieredConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -10701,17 +11402,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for rating based on total usage quantities into the specified tier * @@ -10729,20 +11432,15 @@ private constructor( */ @JsonProperty("tiers") @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10834,27 +11532,42 @@ private constructor( fun build(): TieredConfig = TieredConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("first_unit") - @ExcludeMissing - private val firstUnit: JsonField = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonProperty("last_unit") - @ExcludeMissing - private val lastUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val firstUnit: JsonField, + private val unitAmount: JsonField, + private val lastUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("first_unit") + @ExcludeMissing + firstUnit: JsonField = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + @JsonProperty("last_unit") + @ExcludeMissing + lastUnit: JsonField = JsonMissing.of(), + ) : this(firstUnit, unitAmount, lastUnit, mutableMapOf()) + /** * Inclusive tier starting value * @@ -10912,22 +11625,15 @@ private constructor( @ExcludeMissing fun _lastUnit(): JsonField = lastUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - firstUnit() - unitAmount() - lastUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -11056,10 +11762,23 @@ private constructor( checkRequired("firstUnit", firstUnit), checkRequired("unitAmount", unitAmount), lastUnit, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + firstUnit() + unitAmount() + lastUnit() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -11099,20 +11818,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -11151,21 +11873,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -11266,10 +11982,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -11401,20 +12129,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -11453,21 +12184,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -11568,10 +12293,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -11704,27 +12441,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -11771,7 +12501,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -11809,61 +12549,91 @@ private constructor( "NewFloatingTieredPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, tieredConfig=$tieredConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingTieredBpsPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_bps_config") - @ExcludeMissing - private val tieredBpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredBpsConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_bps_config") + @ExcludeMissing + tieredBpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + tieredBpsConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -12145,34 +12915,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingTieredBpsPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - tieredBpsConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12605,10 +13356,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingTieredBpsPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + tieredBpsConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -12836,17 +13612,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredBpsConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for a Graduated BPS pricing model, where usage is bucketed into specified * tiers @@ -12865,20 +13643,15 @@ private constructor( */ @JsonProperty("tiers") @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredBpsConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12973,30 +13746,46 @@ private constructor( fun build(): TieredBpsConfig = TieredBpsConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredBpsConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bps: JsonField, + private val minimumAmount: JsonField, + private val maximumAmount: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") + @ExcludeMissing + bps: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, minimumAmount, maximumAmount, perUnitMaximum, mutableMapOf()) + /** * Per-event basis point rate * @@ -13071,23 +13860,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - bps() - minimumAmount() - maximumAmount() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13236,10 +14017,24 @@ private constructor( checkRequired("minimumAmount", minimumAmount), maximumAmount, perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + bps() + minimumAmount() + maximumAmount() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -13279,20 +14074,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -13331,21 +14129,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13446,10 +14238,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -13581,20 +14385,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -13633,21 +14440,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13748,10 +14549,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -13884,27 +14697,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13951,7 +14757,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -13989,61 +14805,91 @@ private constructor( "NewFloatingTieredBpsPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, tieredBpsConfig=$tieredBpsConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingBpsPrice - @JsonCreator private constructor( - @JsonProperty("bps_config") - @ExcludeMissing - private val bpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bpsConfig: JsonField, + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps_config") + @ExcludeMissing + bpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + bpsConfig, + cadence, + currency, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -14324,34 +15170,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingBpsPrice = apply { - if (validated) { - return@apply - } - - bpsConfig().validate() - cadence() - currency() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -14780,24 +15607,50 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewFloatingBpsPrice = apply { + if (validated) { + return@apply + } + + bpsConfig().validate() + cadence() + currency() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + class BpsConfig - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bps: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") @ExcludeMissing bps: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, perUnitMaximum, mutableMapOf()) + /** * Basis point take rate per event * @@ -14833,21 +15686,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BpsConfig = apply { - if (validated) { - return@apply - } - - bps() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -14950,10 +15797,22 @@ private constructor( BpsConfig( checkRequired("bps", bps), perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BpsConfig = apply { + if (validated) { + return@apply + } + + bps() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -15202,20 +16061,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -15254,21 +16116,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -15369,10 +16225,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -15504,20 +16372,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -15556,21 +16427,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -15671,10 +16536,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -15807,27 +16684,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -15874,7 +16744,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -15912,61 +16792,91 @@ private constructor( "NewFloatingBpsPrice{bpsConfig=$bpsConfig, cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingBulkBpsPrice - @JsonCreator private constructor( - @JsonProperty("bulk_bps_config") - @ExcludeMissing - private val bulkBpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bulkBpsConfig: JsonField, + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bulk_bps_config") + @ExcludeMissing + bulkBpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + bulkBpsConfig, + cadence, + currency, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -16247,34 +17157,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingBulkBpsPrice = apply { - if (validated) { - return@apply - } - - bulkBpsConfig().validate() - cadence() - currency() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -16707,21 +17598,48 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewFloatingBulkBpsPrice = apply { + if (validated) { + return@apply + } + + bulkBpsConfig().validate() + cadence() + currency() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + class BulkBpsConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for a bulk BPS pricing model where all usage is aggregated to a single tier * based on total volume @@ -16740,20 +17658,15 @@ private constructor( */ @JsonProperty("tiers") @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkBpsConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -16848,27 +17761,42 @@ private constructor( fun build(): BulkBpsConfig = BulkBpsConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): BulkBpsConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bps: JsonField, + private val maximumAmount: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") + @ExcludeMissing + bps: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, maximumAmount, perUnitMaximum, mutableMapOf()) + /** * Basis points to rate on * @@ -16924,22 +17852,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - bps() - maximumAmount() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -17068,10 +17989,23 @@ private constructor( checkRequired("bps", bps), maximumAmount, perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + bps() + maximumAmount() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -17338,20 +18272,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -17390,21 +18327,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -17505,10 +18436,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -17640,20 +18583,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -17692,21 +18638,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -17807,10 +18747,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -17943,27 +18895,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -18010,7 +18955,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -18048,61 +19003,91 @@ private constructor( "NewFloatingBulkBpsPrice{bulkBpsConfig=$bulkBpsConfig, cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingBulkPrice - @JsonCreator private constructor( - @JsonProperty("bulk_config") - @ExcludeMissing - private val bulkConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bulkConfig: JsonField, + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bulk_config") + @ExcludeMissing + bulkConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + bulkConfig, + cadence, + currency, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -18383,34 +19368,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingBulkPrice = apply { - if (validated) { - return@apply - } - - bulkConfig().validate() - cadence() - currency() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -18839,21 +19805,48 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewFloatingBulkPrice = apply { + if (validated) { + return@apply + } + + bulkConfig().validate() + cadence() + currency() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + class BulkConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Bulk tiers for rating based on total usage volume * @@ -18871,20 +19864,15 @@ private constructor( */ @JsonProperty("tiers") @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -18976,24 +19964,38 @@ private constructor( fun build(): BulkConfig = BulkConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): BulkConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonProperty("maximum_units") - @ExcludeMissing - private val maximumUnits: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val unitAmount: JsonField, + private val maximumUnits: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + @JsonProperty("maximum_units") + @ExcludeMissing + maximumUnits: JsonField = JsonMissing.of(), + ) : this(unitAmount, maximumUnits, mutableMapOf()) + /** * Amount per unit * @@ -19032,21 +20034,15 @@ private constructor( @ExcludeMissing fun _maximumUnits(): JsonField = maximumUnits + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - unitAmount() - maximumUnits() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -19160,10 +20156,22 @@ private constructor( Tier( checkRequired("unitAmount", unitAmount), maximumUnits, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + unitAmount() + maximumUnits() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -19430,20 +20438,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -19482,21 +20493,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -19597,10 +20602,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -19732,20 +20749,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -19784,21 +20804,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -19899,10 +20913,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -20035,27 +21061,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -20102,7 +21121,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -20140,62 +21169,92 @@ private constructor( "NewFloatingBulkPrice{bulkConfig=$bulkConfig, cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingThresholdTotalAmountPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("threshold_total_amount_config") - @ExcludeMissing - private val thresholdTotalAmountConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val thresholdTotalAmountConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("threshold_total_amount_config") + @ExcludeMissing + thresholdTotalAmountConfig: JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + thresholdTotalAmountConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -20478,34 +21537,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingThresholdTotalAmountPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - thresholdTotalAmountConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -20944,10 +21984,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingThresholdTotalAmountPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + thresholdTotalAmountConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -21175,27 +22240,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ThresholdTotalAmountConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ThresholdTotalAmountConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -21248,7 +22306,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ThresholdTotalAmountConfig = - ThresholdTotalAmountConfig(additionalProperties.toImmutable()) + ThresholdTotalAmountConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): ThresholdTotalAmountConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -21272,20 +22340,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -21324,21 +22395,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -21439,10 +22504,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -21574,20 +22651,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -21626,21 +22706,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -21741,10 +22815,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -21877,27 +22963,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -21944,7 +23023,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -21982,61 +23071,91 @@ private constructor( "NewFloatingThresholdTotalAmountPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, thresholdTotalAmountConfig=$thresholdTotalAmountConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_package_config") - @ExcludeMissing - private val tieredPackageConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredPackageConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_package_config") + @ExcludeMissing + tieredPackageConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + tieredPackageConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -22318,34 +23437,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingTieredPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - tieredPackageConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -22781,10 +23881,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingTieredPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + tieredPackageConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -23012,27 +24137,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredPackageConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredPackageConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -23084,7 +24202,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageConfig = - TieredPackageConfig(additionalProperties.toImmutable()) + TieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -23108,20 +24236,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -23160,21 +24291,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -23275,10 +24400,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -23410,20 +24547,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -23462,21 +24602,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -23577,10 +24711,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -23713,27 +24859,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -23780,7 +24919,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -23818,61 +24967,91 @@ private constructor( "NewFloatingTieredPackagePrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, tieredPackageConfig=$tieredPackageConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingGroupedTieredPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("grouped_tiered_config") - @ExcludeMissing - private val groupedTieredConfig: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val groupedTieredConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("grouped_tiered_config") + @ExcludeMissing + groupedTieredConfig: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + groupedTieredConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -24154,34 +25333,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingGroupedTieredPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - groupedTieredConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -24617,10 +25777,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingGroupedTieredPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + groupedTieredConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -24750,27 +25935,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedTieredConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedTieredConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -24822,7 +26000,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredConfig = - GroupedTieredConfig(additionalProperties.toImmutable()) + GroupedTieredConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedTieredConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -24944,20 +26132,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -24996,21 +26187,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -25111,10 +26296,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -25246,20 +26443,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -25298,21 +26498,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -25413,10 +26607,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -25549,27 +26755,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -25616,7 +26815,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -25654,62 +26863,92 @@ private constructor( "NewFloatingGroupedTieredPrice{cadence=$cadence, currency=$currency, groupedTieredConfig=$groupedTieredConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingMaxGroupTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("max_group_tiered_package_config") - @ExcludeMissing - private val maxGroupTieredPackageConfig: JsonField = - JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val maxGroupTieredPackageConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("max_group_tiered_package_config") + @ExcludeMissing + maxGroupTieredPackageConfig: JsonField = + JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + maxGroupTieredPackageConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -25992,34 +27231,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingMaxGroupTieredPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - maxGroupTieredPackageConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -26458,10 +27678,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingMaxGroupTieredPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + maxGroupTieredPackageConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -26591,27 +27836,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MaxGroupTieredPackageConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MaxGroupTieredPackageConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -26664,7 +27902,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MaxGroupTieredPackageConfig = - MaxGroupTieredPackageConfig(additionalProperties.toImmutable()) + MaxGroupTieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): MaxGroupTieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -26786,20 +28034,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -26838,21 +28089,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -26953,10 +28198,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -27088,20 +28345,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -27140,21 +28400,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -27255,10 +28509,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -27391,27 +28657,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -27458,7 +28717,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -27496,62 +28765,91 @@ private constructor( "NewFloatingMaxGroupTieredPackagePrice{cadence=$cadence, currency=$currency, itemId=$itemId, maxGroupTieredPackageConfig=$maxGroupTieredPackageConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingTieredWithMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_with_minimum_config") - @ExcludeMissing - private val tieredWithMinimumConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredWithMinimumConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_with_minimum_config") + @ExcludeMissing + tieredWithMinimumConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + tieredWithMinimumConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -27834,34 +29132,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingTieredWithMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - tieredWithMinimumConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -28298,10 +29577,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingTieredWithMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + tieredWithMinimumConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -28529,27 +29833,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredWithMinimumConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredWithMinimumConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -28601,7 +29898,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithMinimumConfig = - TieredWithMinimumConfig(additionalProperties.toImmutable()) + TieredWithMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredWithMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -28625,20 +29932,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -28677,21 +29987,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -28792,10 +30096,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -28927,20 +30243,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -28979,21 +30298,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -29094,10 +30407,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -29230,27 +30555,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -29297,7 +30615,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -29335,62 +30663,92 @@ private constructor( "NewFloatingTieredWithMinimumPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, tieredWithMinimumConfig=$tieredWithMinimumConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingPackageWithAllocationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("package_with_allocation_config") - @ExcludeMissing - private val packageWithAllocationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val packageWithAllocationConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("package_with_allocation_config") + @ExcludeMissing + packageWithAllocationConfig: JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + packageWithAllocationConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -29673,34 +31031,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingPackageWithAllocationPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - packageWithAllocationConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -30139,10 +31478,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingPackageWithAllocationPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + packageWithAllocationConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -30370,27 +31734,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class PackageWithAllocationConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PackageWithAllocationConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -30443,7 +31800,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): PackageWithAllocationConfig = - PackageWithAllocationConfig(additionalProperties.toImmutable()) + PackageWithAllocationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): PackageWithAllocationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -30467,20 +31834,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -30519,21 +31889,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -30634,10 +31998,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -30769,20 +32145,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -30821,21 +32200,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -30936,10 +32309,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -31072,27 +32457,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -31139,7 +32517,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -31177,62 +32565,92 @@ private constructor( "NewFloatingPackageWithAllocationPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, packageWithAllocationConfig=$packageWithAllocationConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingTieredPackageWithMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_package_with_minimum_config") - @ExcludeMissing - private val tieredPackageWithMinimumConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredPackageWithMinimumConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_package_with_minimum_config") + @ExcludeMissing + tieredPackageWithMinimumConfig: JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + tieredPackageWithMinimumConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -31515,34 +32933,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingTieredPackageWithMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - tieredPackageWithMinimumConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -31986,10 +33385,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingTieredPackageWithMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + tieredPackageWithMinimumConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -32217,27 +33641,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredPackageWithMinimumConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredPackageWithMinimumConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -32291,7 +33708,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageWithMinimumConfig = - TieredPackageWithMinimumConfig(additionalProperties.toImmutable()) + TieredPackageWithMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredPackageWithMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -32315,20 +33742,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -32367,21 +33797,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -32482,10 +33906,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -32617,20 +34053,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -32669,21 +34108,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -32784,10 +34217,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -32920,27 +34365,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -32987,7 +34425,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -33025,61 +34473,91 @@ private constructor( "NewFloatingTieredPackageWithMinimumPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, tieredPackageWithMinimumConfig=$tieredPackageWithMinimumConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingUnitWithPercentPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("unit_with_percent_config") - @ExcludeMissing - private val unitWithPercentConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val unitWithPercentConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("unit_with_percent_config") + @ExcludeMissing + unitWithPercentConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + unitWithPercentConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -33361,34 +34839,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingUnitWithPercentPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - unitWithPercentConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -33825,10 +35284,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingUnitWithPercentPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + unitWithPercentConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -34056,27 +35540,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitWithPercentConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitWithPercentConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -34128,7 +35605,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithPercentConfig = - UnitWithPercentConfig(additionalProperties.toImmutable()) + UnitWithPercentConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): UnitWithPercentConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -34152,20 +35639,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -34204,21 +35694,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -34319,10 +35803,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -34454,20 +35950,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -34506,21 +36005,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -34621,10 +36114,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -34757,27 +36262,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -34824,7 +36322,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -34862,62 +36370,91 @@ private constructor( "NewFloatingUnitWithPercentPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, unitWithPercentConfig=$unitWithPercentConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingTieredWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_with_proration_config") - @ExcludeMissing - private val tieredWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredWithProrationConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_with_proration_config") + @ExcludeMissing + tieredWithProrationConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + tieredWithProrationConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -35200,34 +36737,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingTieredWithProrationPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - tieredWithProrationConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -35665,10 +37183,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingTieredWithProrationPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + tieredWithProrationConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -35896,27 +37439,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredWithProrationConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredWithProrationConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -35969,7 +37505,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithProrationConfig = - TieredWithProrationConfig(additionalProperties.toImmutable()) + TieredWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -35993,20 +37539,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -36045,21 +37594,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -36160,10 +37703,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -36295,20 +37850,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -36347,21 +37905,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -36462,10 +38014,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -36598,27 +38162,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -36665,7 +38222,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -36703,62 +38270,91 @@ private constructor( "NewFloatingTieredWithProrationPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, tieredWithProrationConfig=$tieredWithProrationConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingUnitWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("unit_with_proration_config") - @ExcludeMissing - private val unitWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val unitWithProrationConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("unit_with_proration_config") + @ExcludeMissing + unitWithProrationConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + unitWithProrationConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -37041,34 +38637,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingUnitWithProrationPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - unitWithProrationConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -37505,10 +39082,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingUnitWithProrationPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + unitWithProrationConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -37736,27 +39338,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitWithProrationConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitWithProrationConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -37808,7 +39403,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithProrationConfig = - UnitWithProrationConfig(additionalProperties.toImmutable()) + UnitWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): UnitWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -37832,20 +39437,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -37884,21 +39492,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -37999,10 +39601,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -38134,20 +39748,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -38186,21 +39803,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -38301,10 +39912,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -38437,27 +40060,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -38504,7 +40120,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -38542,62 +40168,91 @@ private constructor( "NewFloatingUnitWithProrationPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, unitWithProrationConfig=$unitWithProrationConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingGroupedAllocationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("grouped_allocation_config") - @ExcludeMissing - private val groupedAllocationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val groupedAllocationConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("grouped_allocation_config") + @ExcludeMissing + groupedAllocationConfig: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + groupedAllocationConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -38880,34 +40535,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingGroupedAllocationPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - groupedAllocationConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -39344,10 +40980,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingGroupedAllocationPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + groupedAllocationConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -39477,27 +41138,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedAllocationConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedAllocationConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -39549,7 +41203,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedAllocationConfig = - GroupedAllocationConfig(additionalProperties.toImmutable()) + GroupedAllocationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedAllocationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -39671,20 +41335,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -39723,21 +41390,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -39838,10 +41499,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -39973,20 +41646,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -40025,21 +41701,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -40140,10 +41810,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -40276,27 +41958,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -40343,7 +42018,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -40381,63 +42066,93 @@ private constructor( "NewFloatingGroupedAllocationPrice{cadence=$cadence, currency=$currency, groupedAllocationConfig=$groupedAllocationConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingGroupedWithProratedMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("grouped_with_prorated_minimum_config") - @ExcludeMissing + private val cadence: JsonField, + private val currency: JsonField, private val groupedWithProratedMinimumConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("grouped_with_prorated_minimum_config") + @ExcludeMissing + groupedWithProratedMinimumConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + groupedWithProratedMinimumConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -40720,34 +42435,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingGroupedWithProratedMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - groupedWithProratedMinimumConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -41196,10 +42892,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingGroupedWithProratedMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + groupedWithProratedMinimumConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -41329,27 +43050,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedWithProratedMinimumConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedWithProratedMinimumConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -41403,7 +43117,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithProratedMinimumConfig = - GroupedWithProratedMinimumConfig(additionalProperties.toImmutable()) + GroupedWithProratedMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedWithProratedMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -41526,20 +43250,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -41578,21 +43305,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -41693,10 +43414,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -41828,20 +43561,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -41880,21 +43616,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -41995,10 +43725,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -42131,27 +43873,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -42198,7 +43933,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -42236,63 +43981,92 @@ private constructor( "NewFloatingGroupedWithProratedMinimumPrice{cadence=$cadence, currency=$currency, groupedWithProratedMinimumConfig=$groupedWithProratedMinimumConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingGroupedWithMeteredMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("grouped_with_metered_minimum_config") - @ExcludeMissing - private val groupedWithMeteredMinimumConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val groupedWithMeteredMinimumConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("grouped_with_metered_minimum_config") + @ExcludeMissing + groupedWithMeteredMinimumConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + groupedWithMeteredMinimumConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -42575,34 +44349,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingGroupedWithMeteredMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - groupedWithMeteredMinimumConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -43049,10 +44804,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingGroupedWithMeteredMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + groupedWithMeteredMinimumConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -43182,27 +44962,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedWithMeteredMinimumConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedWithMeteredMinimumConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -43256,7 +45029,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithMeteredMinimumConfig = - GroupedWithMeteredMinimumConfig(additionalProperties.toImmutable()) + GroupedWithMeteredMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedWithMeteredMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -43378,20 +45161,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -43430,21 +45216,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -43545,10 +45325,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -43680,20 +45472,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -43732,21 +45527,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -43847,10 +45636,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -43983,27 +45784,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -44050,7 +45844,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -44088,62 +45892,92 @@ private constructor( "NewFloatingGroupedWithMeteredMinimumPrice{cadence=$cadence, currency=$currency, groupedWithMeteredMinimumConfig=$groupedWithMeteredMinimumConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingMatrixWithDisplayNamePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("matrix_with_display_name_config") - @ExcludeMissing - private val matrixWithDisplayNameConfig: JsonField = - JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val matrixWithDisplayNameConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("matrix_with_display_name_config") + @ExcludeMissing + matrixWithDisplayNameConfig: JsonField = + JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + matrixWithDisplayNameConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -44426,34 +46260,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingMatrixWithDisplayNamePrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - matrixWithDisplayNameConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -44892,10 +46707,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingMatrixWithDisplayNamePrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + matrixWithDisplayNameConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -45025,27 +46865,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MatrixWithDisplayNameConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixWithDisplayNameConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -45098,7 +46931,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MatrixWithDisplayNameConfig = - MatrixWithDisplayNameConfig(additionalProperties.toImmutable()) + MatrixWithDisplayNameConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): MatrixWithDisplayNameConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -45220,20 +47063,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -45272,21 +47118,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -45387,10 +47227,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -45522,20 +47374,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -45574,21 +47429,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -45689,10 +47538,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -45825,27 +47686,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -45892,7 +47746,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -45930,62 +47794,91 @@ private constructor( "NewFloatingMatrixWithDisplayNamePrice{cadence=$cadence, currency=$currency, itemId=$itemId, matrixWithDisplayNameConfig=$matrixWithDisplayNameConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingBulkWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("bulk_with_proration_config") - @ExcludeMissing - private val bulkWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bulkWithProrationConfig: JsonField, + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bulk_with_proration_config") + @ExcludeMissing + bulkWithProrationConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + bulkWithProrationConfig, + cadence, + currency, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -46268,34 +48161,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingBulkWithProrationPrice = apply { - if (validated) { - return@apply - } - - bulkWithProrationConfig().validate() - cadence() - currency() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -46732,32 +48606,50 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect - class BulkWithProrationConfig - @JsonCreator - private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private var validated: Boolean = false - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun validate(): NewFloatingBulkWithProrationPrice = apply { + if (validated) { + return@apply + } - private var validated: Boolean = false + bulkWithProrationConfig().validate() + cadence() + currency() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } - fun validate(): BulkWithProrationConfig = apply { - if (validated) { - return@apply - } + class BulkWithProrationConfig + private constructor(private val additionalProperties: MutableMap) { - validated = true + @JsonCreator private constructor() : this(mutableMapOf()) + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -46808,7 +48700,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): BulkWithProrationConfig = - BulkWithProrationConfig(additionalProperties.toImmutable()) + BulkWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BulkWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -47059,20 +48961,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -47111,21 +49016,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -47226,10 +49125,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -47361,20 +49272,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -47413,21 +49327,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -47528,10 +49436,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -47664,27 +49584,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -47731,7 +49644,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -47769,62 +49692,92 @@ private constructor( "NewFloatingBulkWithProrationPrice{bulkWithProrationConfig=$bulkWithProrationConfig, cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingGroupedTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("grouped_tiered_package_config") - @ExcludeMissing - private val groupedTieredPackageConfig: JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val groupedTieredPackageConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("grouped_tiered_package_config") + @ExcludeMissing + groupedTieredPackageConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + groupedTieredPackageConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -48107,34 +50060,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingGroupedTieredPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - groupedTieredPackageConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -48573,10 +50507,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingGroupedTieredPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + groupedTieredPackageConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -48706,27 +50665,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedTieredPackageConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedTieredPackageConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -48779,7 +50731,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredPackageConfig = - GroupedTieredPackageConfig(additionalProperties.toImmutable()) + GroupedTieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedTieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -48901,20 +50863,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -48953,21 +50918,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -49068,10 +51027,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -49203,20 +51174,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -49255,21 +51229,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -49370,10 +51338,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -49506,27 +51486,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -49573,7 +51546,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -49611,63 +51594,94 @@ private constructor( "NewFloatingGroupedTieredPackagePrice{cadence=$cadence, currency=$currency, groupedTieredPackageConfig=$groupedTieredPackageConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingScalableMatrixWithUnitPricingPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("scalable_matrix_with_unit_pricing_config") - @ExcludeMissing + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, private val scalableMatrixWithUnitPricingConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("scalable_matrix_with_unit_pricing_config") + @ExcludeMissing + scalableMatrixWithUnitPricingConfig: + JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + scalableMatrixWithUnitPricingConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -49952,34 +51966,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingScalableMatrixWithUnitPricingPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - scalableMatrixWithUnitPricingConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -50434,10 +52429,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingScalableMatrixWithUnitPricingPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + scalableMatrixWithUnitPricingConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -50666,27 +52686,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ScalableMatrixWithUnitPricingConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ScalableMatrixWithUnitPricingConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -50740,7 +52753,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithUnitPricingConfig = - ScalableMatrixWithUnitPricingConfig(additionalProperties.toImmutable()) + ScalableMatrixWithUnitPricingConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): ScalableMatrixWithUnitPricingConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -50764,20 +52787,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -50816,21 +52842,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -50931,10 +52951,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -51066,20 +53098,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -51118,21 +53153,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -51233,10 +53262,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -51369,27 +53410,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -51436,7 +53470,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -51474,63 +53518,94 @@ private constructor( "NewFloatingScalableMatrixWithUnitPricingPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, scalableMatrixWithUnitPricingConfig=$scalableMatrixWithUnitPricingConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingScalableMatrixWithTieredPricingPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("scalable_matrix_with_tiered_pricing_config") - @ExcludeMissing + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, private val scalableMatrixWithTieredPricingConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("scalable_matrix_with_tiered_pricing_config") + @ExcludeMissing + scalableMatrixWithTieredPricingConfig: + JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + scalableMatrixWithTieredPricingConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -51816,34 +53891,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingScalableMatrixWithTieredPricingPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - scalableMatrixWithTieredPricingConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -52302,10 +54358,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingScalableMatrixWithTieredPricingPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + scalableMatrixWithTieredPricingConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -52537,27 +54618,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ScalableMatrixWithTieredPricingConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ScalableMatrixWithTieredPricingConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -52612,7 +54686,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithTieredPricingConfig = - ScalableMatrixWithTieredPricingConfig(additionalProperties.toImmutable()) + ScalableMatrixWithTieredPricingConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): ScalableMatrixWithTieredPricingConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -52636,20 +54720,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -52688,21 +54775,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -52803,10 +54884,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -52938,20 +55031,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -52990,21 +55086,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -53105,10 +55195,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -53241,27 +55343,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -53308,7 +55403,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -53346,62 +55451,92 @@ private constructor( "NewFloatingScalableMatrixWithTieredPricingPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, scalableMatrixWithTieredPricingConfig=$scalableMatrixWithTieredPricingConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingCumulativeGroupedBulkPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("cumulative_grouped_bulk_config") - @ExcludeMissing - private val cumulativeGroupedBulkConfig: JsonField = - JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val cumulativeGroupedBulkConfig: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("cumulative_grouped_bulk_config") + @ExcludeMissing + cumulativeGroupedBulkConfig: JsonField = + JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + cumulativeGroupedBulkConfig, + currency, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -53684,34 +55819,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingCumulativeGroupedBulkPrice = apply { - if (validated) { - return@apply - } - - cadence() - cumulativeGroupedBulkConfig().validate() - currency() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -54150,10 +56266,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingCumulativeGroupedBulkPrice = apply { + if (validated) { + return@apply + } + + cadence() + cumulativeGroupedBulkConfig().validate() + currency() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -54283,27 +56424,20 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CumulativeGroupedBulkConfig - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CumulativeGroupedBulkConfig = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -54356,7 +56490,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): CumulativeGroupedBulkConfig = - CumulativeGroupedBulkConfig(additionalProperties.toImmutable()) + CumulativeGroupedBulkConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): CumulativeGroupedBulkConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -54478,20 +56622,23 @@ private constructor( /** * For custom cadence: specifies the duration of the billing period in days or months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -54530,21 +56677,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -54645,10 +56786,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -54780,20 +56933,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. If * unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -54832,21 +56988,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -54947,10 +57097,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -55083,27 +57245,20 @@ private constructor( * setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -55150,7 +57305,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -55189,389 +57354,6 @@ private constructor( } } - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of [PriceCreateParams]. - * - * The following fields are required: - * ```java - * .body() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [PriceCreateParams]. */ - @NoAutoDetect - class Builder internal constructor() { - - private var body: Body? = null - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() - - @JvmSynthetic - internal fun from(priceCreateParams: PriceCreateParams) = apply { - body = priceCreateParams.body - additionalHeaders = priceCreateParams.additionalHeaders.toBuilder() - additionalQueryParams = priceCreateParams.additionalQueryParams.toBuilder() - } - - fun body(body: Body) = apply { this.body = body } - - /** Alias for calling [body] with `Body.ofNewFloatingUnitPrice(newFloatingUnitPrice)`. */ - fun body(newFloatingUnitPrice: Body.NewFloatingUnitPrice) = - body(Body.ofNewFloatingUnitPrice(newFloatingUnitPrice)) - - /** - * Alias for calling [body] with `Body.ofNewFloatingPackagePrice(newFloatingPackagePrice)`. - */ - fun body(newFloatingPackagePrice: Body.NewFloatingPackagePrice) = - body(Body.ofNewFloatingPackagePrice(newFloatingPackagePrice)) - - /** - * Alias for calling [body] with `Body.ofNewFloatingMatrixPrice(newFloatingMatrixPrice)`. - */ - fun body(newFloatingMatrixPrice: Body.NewFloatingMatrixPrice) = - body(Body.ofNewFloatingMatrixPrice(newFloatingMatrixPrice)) - - /** - * Alias for calling [body] with - * `Body.ofNewFloatingMatrixWithAllocationPrice(newFloatingMatrixWithAllocationPrice)`. - */ - fun body(newFloatingMatrixWithAllocationPrice: Body.NewFloatingMatrixWithAllocationPrice) = - body(Body.ofNewFloatingMatrixWithAllocationPrice(newFloatingMatrixWithAllocationPrice)) - - /** - * Alias for calling [body] with `Body.ofNewFloatingTieredPrice(newFloatingTieredPrice)`. - */ - fun body(newFloatingTieredPrice: Body.NewFloatingTieredPrice) = - body(Body.ofNewFloatingTieredPrice(newFloatingTieredPrice)) - - /** - * Alias for calling [body] with - * `Body.ofNewFloatingTieredBpsPrice(newFloatingTieredBpsPrice)`. - */ - fun body(newFloatingTieredBpsPrice: Body.NewFloatingTieredBpsPrice) = - body(Body.ofNewFloatingTieredBpsPrice(newFloatingTieredBpsPrice)) - - /** Alias for calling [body] with `Body.ofNewFloatingBpsPrice(newFloatingBpsPrice)`. */ - fun body(newFloatingBpsPrice: Body.NewFloatingBpsPrice) = - body(Body.ofNewFloatingBpsPrice(newFloatingBpsPrice)) - - /** - * Alias for calling [body] with `Body.ofNewFloatingBulkBpsPrice(newFloatingBulkBpsPrice)`. - */ - fun body(newFloatingBulkBpsPrice: Body.NewFloatingBulkBpsPrice) = - body(Body.ofNewFloatingBulkBpsPrice(newFloatingBulkBpsPrice)) - - /** Alias for calling [body] with `Body.ofNewFloatingBulkPrice(newFloatingBulkPrice)`. */ - fun body(newFloatingBulkPrice: Body.NewFloatingBulkPrice) = - body(Body.ofNewFloatingBulkPrice(newFloatingBulkPrice)) - - /** - * Alias for calling [body] with - * `Body.ofNewFloatingThresholdTotalAmountPrice(newFloatingThresholdTotalAmountPrice)`. - */ - fun body(newFloatingThresholdTotalAmountPrice: Body.NewFloatingThresholdTotalAmountPrice) = - body(Body.ofNewFloatingThresholdTotalAmountPrice(newFloatingThresholdTotalAmountPrice)) - - /** - * Alias for calling [body] with - * `Body.ofNewFloatingTieredPackagePrice(newFloatingTieredPackagePrice)`. - */ - fun body(newFloatingTieredPackagePrice: Body.NewFloatingTieredPackagePrice) = - body(Body.ofNewFloatingTieredPackagePrice(newFloatingTieredPackagePrice)) - - /** - * Alias for calling [body] with - * `Body.ofNewFloatingGroupedTieredPrice(newFloatingGroupedTieredPrice)`. - */ - fun body(newFloatingGroupedTieredPrice: Body.NewFloatingGroupedTieredPrice) = - body(Body.ofNewFloatingGroupedTieredPrice(newFloatingGroupedTieredPrice)) - - /** - * Alias for calling [body] with - * `Body.ofNewFloatingMaxGroupTieredPackagePrice(newFloatingMaxGroupTieredPackagePrice)`. - */ - fun body( - newFloatingMaxGroupTieredPackagePrice: Body.NewFloatingMaxGroupTieredPackagePrice - ) = - body( - Body.ofNewFloatingMaxGroupTieredPackagePrice(newFloatingMaxGroupTieredPackagePrice) - ) - - /** - * Alias for calling [body] with - * `Body.ofNewFloatingTieredWithMinimumPrice(newFloatingTieredWithMinimumPrice)`. - */ - fun body(newFloatingTieredWithMinimumPrice: Body.NewFloatingTieredWithMinimumPrice) = - body(Body.ofNewFloatingTieredWithMinimumPrice(newFloatingTieredWithMinimumPrice)) - - /** - * Alias for calling [body] with - * `Body.ofNewFloatingPackageWithAllocationPrice(newFloatingPackageWithAllocationPrice)`. - */ - fun body( - newFloatingPackageWithAllocationPrice: Body.NewFloatingPackageWithAllocationPrice - ) = - body( - Body.ofNewFloatingPackageWithAllocationPrice(newFloatingPackageWithAllocationPrice) - ) - - /** - * Alias for calling [body] with - * `Body.ofNewFloatingTieredPackageWithMinimumPrice(newFloatingTieredPackageWithMinimumPrice)`. - */ - fun body( - newFloatingTieredPackageWithMinimumPrice: Body.NewFloatingTieredPackageWithMinimumPrice - ) = - body( - Body.ofNewFloatingTieredPackageWithMinimumPrice( - newFloatingTieredPackageWithMinimumPrice - ) - ) - - /** - * Alias for calling [body] with - * `Body.ofNewFloatingUnitWithPercentPrice(newFloatingUnitWithPercentPrice)`. - */ - fun body(newFloatingUnitWithPercentPrice: Body.NewFloatingUnitWithPercentPrice) = - body(Body.ofNewFloatingUnitWithPercentPrice(newFloatingUnitWithPercentPrice)) - - /** - * Alias for calling [body] with - * `Body.ofNewFloatingTieredWithProrationPrice(newFloatingTieredWithProrationPrice)`. - */ - fun body(newFloatingTieredWithProrationPrice: Body.NewFloatingTieredWithProrationPrice) = - body(Body.ofNewFloatingTieredWithProrationPrice(newFloatingTieredWithProrationPrice)) - - /** - * Alias for calling [body] with - * `Body.ofNewFloatingUnitWithProrationPrice(newFloatingUnitWithProrationPrice)`. - */ - fun body(newFloatingUnitWithProrationPrice: Body.NewFloatingUnitWithProrationPrice) = - body(Body.ofNewFloatingUnitWithProrationPrice(newFloatingUnitWithProrationPrice)) - - /** - * Alias for calling [body] with - * `Body.ofNewFloatingGroupedAllocationPrice(newFloatingGroupedAllocationPrice)`. - */ - fun body(newFloatingGroupedAllocationPrice: Body.NewFloatingGroupedAllocationPrice) = - body(Body.ofNewFloatingGroupedAllocationPrice(newFloatingGroupedAllocationPrice)) - - /** - * Alias for calling [body] with - * `Body.ofNewFloatingGroupedWithProratedMinimumPrice(newFloatingGroupedWithProratedMinimumPrice)`. - */ - fun body( - newFloatingGroupedWithProratedMinimumPrice: - Body.NewFloatingGroupedWithProratedMinimumPrice - ) = - body( - Body.ofNewFloatingGroupedWithProratedMinimumPrice( - newFloatingGroupedWithProratedMinimumPrice - ) - ) - - /** - * Alias for calling [body] with - * `Body.ofNewFloatingGroupedWithMeteredMinimumPrice(newFloatingGroupedWithMeteredMinimumPrice)`. - */ - fun body( - newFloatingGroupedWithMeteredMinimumPrice: - Body.NewFloatingGroupedWithMeteredMinimumPrice - ) = - body( - Body.ofNewFloatingGroupedWithMeteredMinimumPrice( - newFloatingGroupedWithMeteredMinimumPrice - ) - ) - - /** - * Alias for calling [body] with - * `Body.ofNewFloatingMatrixWithDisplayNamePrice(newFloatingMatrixWithDisplayNamePrice)`. - */ - fun body( - newFloatingMatrixWithDisplayNamePrice: Body.NewFloatingMatrixWithDisplayNamePrice - ) = - body( - Body.ofNewFloatingMatrixWithDisplayNamePrice(newFloatingMatrixWithDisplayNamePrice) - ) - - /** - * Alias for calling [body] with - * `Body.ofNewFloatingBulkWithProrationPrice(newFloatingBulkWithProrationPrice)`. - */ - fun body(newFloatingBulkWithProrationPrice: Body.NewFloatingBulkWithProrationPrice) = - body(Body.ofNewFloatingBulkWithProrationPrice(newFloatingBulkWithProrationPrice)) - - /** - * Alias for calling [body] with - * `Body.ofNewFloatingGroupedTieredPackagePrice(newFloatingGroupedTieredPackagePrice)`. - */ - fun body(newFloatingGroupedTieredPackagePrice: Body.NewFloatingGroupedTieredPackagePrice) = - body(Body.ofNewFloatingGroupedTieredPackagePrice(newFloatingGroupedTieredPackagePrice)) - - /** - * Alias for calling [body] with - * `Body.ofNewFloatingScalableMatrixWithUnitPricingPrice(newFloatingScalableMatrixWithUnitPricingPrice)`. - */ - fun body( - newFloatingScalableMatrixWithUnitPricingPrice: - Body.NewFloatingScalableMatrixWithUnitPricingPrice - ) = - body( - Body.ofNewFloatingScalableMatrixWithUnitPricingPrice( - newFloatingScalableMatrixWithUnitPricingPrice - ) - ) - - /** - * Alias for calling [body] with - * `Body.ofNewFloatingScalableMatrixWithTieredPricingPrice(newFloatingScalableMatrixWithTieredPricingPrice)`. - */ - fun body( - newFloatingScalableMatrixWithTieredPricingPrice: - Body.NewFloatingScalableMatrixWithTieredPricingPrice - ) = - body( - Body.ofNewFloatingScalableMatrixWithTieredPricingPrice( - newFloatingScalableMatrixWithTieredPricingPrice - ) - ) - - /** - * Alias for calling [body] with - * `Body.ofNewFloatingCumulativeGroupedBulkPrice(newFloatingCumulativeGroupedBulkPrice)`. - */ - fun body( - newFloatingCumulativeGroupedBulkPrice: Body.NewFloatingCumulativeGroupedBulkPrice - ) = - body( - Body.ofNewFloatingCumulativeGroupedBulkPrice(newFloatingCumulativeGroupedBulkPrice) - ) - - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } - - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } - - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } - - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } - - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } - - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } - - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } - - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } - - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } - - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } - - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } - - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } - - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } - - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } - - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } - - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) - } - - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } - - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } - - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) - } - - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } - - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } - - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) - } - - /** - * Returns an immutable instance of [PriceCreateParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .body() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): PriceCreateParams = - PriceCreateParams( - checkRequired("body", body), - additionalHeaders.build(), - additionalQueryParams.build(), - ) - } - override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceEvaluateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceEvaluateParams.kt index d7c767ef..c6b96407 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceEvaluateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceEvaluateParams.kt @@ -10,16 +10,15 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -152,395 +151,271 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - fun _pathParam(index: Int): String = - when (index) { - 0 -> priceId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams + fun toBuilder() = Builder().from(this) - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("timeframe_end") - @ExcludeMissing - private val timeframeEnd: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_start") - @ExcludeMissing - private val timeframeStart: JsonField = JsonMissing.of(), - @JsonProperty("customer_id") - @ExcludeMissing - private val customerId: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonProperty("filter") - @ExcludeMissing - private val filter: JsonField = JsonMissing.of(), - @JsonProperty("grouping_keys") - @ExcludeMissing - private val groupingKeys: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { + companion object { /** - * The exclusive upper bound for event timestamps + * Returns a mutable builder for constructing an instance of [PriceEvaluateParams]. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * The following fields are required: + * ```java + * .priceId() + * .timeframeEnd() + * .timeframeStart() + * ``` */ - fun timeframeEnd(): OffsetDateTime = timeframeEnd.getRequired("timeframe_end") + @JvmStatic fun builder() = Builder() + } - /** - * The inclusive lower bound for event timestamps - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun timeframeStart(): OffsetDateTime = timeframeStart.getRequired("timeframe_start") + /** A builder for [PriceEvaluateParams]. */ + class Builder internal constructor() { + + private var priceId: String? = null + private var body: Body.Builder = Body.builder() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from(priceEvaluateParams: PriceEvaluateParams) = apply { + priceId = priceEvaluateParams.priceId + body = priceEvaluateParams.body.toBuilder() + additionalHeaders = priceEvaluateParams.additionalHeaders.toBuilder() + additionalQueryParams = priceEvaluateParams.additionalQueryParams.toBuilder() + } + + fun priceId(priceId: String) = apply { this.priceId = priceId } + + /** The exclusive upper bound for event timestamps */ + fun timeframeEnd(timeframeEnd: OffsetDateTime) = apply { body.timeframeEnd(timeframeEnd) } /** - * The ID of the customer to which this evaluation is scoped. + * Sets [Builder.timeframeEnd] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.timeframeEnd] with a well-typed [OffsetDateTime] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun customerId(): Optional = - Optional.ofNullable(customerId.getNullable("customer_id")) + fun timeframeEnd(timeframeEnd: JsonField) = apply { + body.timeframeEnd(timeframeEnd) + } + + /** The inclusive lower bound for event timestamps */ + fun timeframeStart(timeframeStart: OffsetDateTime) = apply { + body.timeframeStart(timeframeStart) + } /** - * The external customer ID of the customer to which this evaluation is scoped. + * Sets [Builder.timeframeStart] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.timeframeStart] with a well-typed [OffsetDateTime] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun externalCustomerId(): Optional = - Optional.ofNullable(externalCustomerId.getNullable("external_customer_id")) + fun timeframeStart(timeframeStart: JsonField) = apply { + body.timeframeStart(timeframeStart) + } + + /** The ID of the customer to which this evaluation is scoped. */ + fun customerId(customerId: String?) = apply { body.customerId(customerId) } + + /** Alias for calling [Builder.customerId] with `customerId.orElse(null)`. */ + fun customerId(customerId: Optional) = customerId(customerId.getOrNull()) /** - * A boolean [computed property](/extensibility/advanced-metrics#computed-properties) used - * to filter the underlying billable metric + * Sets [Builder.customerId] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.customerId] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. */ - fun filter(): Optional = Optional.ofNullable(filter.getNullable("filter")) + fun customerId(customerId: JsonField) = apply { body.customerId(customerId) } + + /** The external customer ID of the customer to which this evaluation is scoped. */ + fun externalCustomerId(externalCustomerId: String?) = apply { + body.externalCustomerId(externalCustomerId) + } /** - * Properties (or - * [computed properties](/extensibility/advanced-metrics#computed-properties)) used to group - * the underlying billable metric - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Alias for calling [Builder.externalCustomerId] with `externalCustomerId.orElse(null)`. */ - fun groupingKeys(): Optional> = - Optional.ofNullable(groupingKeys.getNullable("grouping_keys")) + fun externalCustomerId(externalCustomerId: Optional) = + externalCustomerId(externalCustomerId.getOrNull()) /** - * Returns the raw JSON value of [timeframeEnd]. + * Sets [Builder.externalCustomerId] to an arbitrary JSON value. * - * Unlike [timeframeEnd], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.externalCustomerId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("timeframe_end") - @ExcludeMissing - fun _timeframeEnd(): JsonField = timeframeEnd + fun externalCustomerId(externalCustomerId: JsonField) = apply { + body.externalCustomerId(externalCustomerId) + } /** - * Returns the raw JSON value of [timeframeStart]. - * - * Unlike [timeframeStart], this method doesn't throw if the JSON field has an unexpected - * type. + * A boolean [computed property](/extensibility/advanced-metrics#computed-properties) used + * to filter the underlying billable metric */ - @JsonProperty("timeframe_start") - @ExcludeMissing - fun _timeframeStart(): JsonField = timeframeStart + fun filter(filter: String?) = apply { body.filter(filter) } + + /** Alias for calling [Builder.filter] with `filter.orElse(null)`. */ + fun filter(filter: Optional) = filter(filter.getOrNull()) /** - * Returns the raw JSON value of [customerId]. + * Sets [Builder.filter] to an arbitrary JSON value. * - * Unlike [customerId], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.filter] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - @JsonProperty("customer_id") - @ExcludeMissing - fun _customerId(): JsonField = customerId + fun filter(filter: JsonField) = apply { body.filter(filter) } /** - * Returns the raw JSON value of [externalCustomerId]. - * - * Unlike [externalCustomerId], this method doesn't throw if the JSON field has an - * unexpected type. + * Properties (or + * [computed properties](/extensibility/advanced-metrics#computed-properties)) used to group + * the underlying billable metric */ - @JsonProperty("external_customer_id") - @ExcludeMissing - fun _externalCustomerId(): JsonField = externalCustomerId + fun groupingKeys(groupingKeys: List) = apply { body.groupingKeys(groupingKeys) } /** - * Returns the raw JSON value of [filter]. + * Sets [Builder.groupingKeys] to an arbitrary JSON value. * - * Unlike [filter], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.groupingKeys] with a well-typed `List` value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("filter") @ExcludeMissing fun _filter(): JsonField = filter + fun groupingKeys(groupingKeys: JsonField>) = apply { + body.groupingKeys(groupingKeys) + } /** - * Returns the raw JSON value of [groupingKeys]. + * Adds a single [String] to [groupingKeys]. * - * Unlike [groupingKeys], this method doesn't throw if the JSON field has an unexpected - * type. + * @throws IllegalStateException if the field was previously set to a non-list. */ - @JsonProperty("grouping_keys") - @ExcludeMissing - fun _groupingKeys(): JsonField> = groupingKeys + fun addGroupingKey(groupingKey: String) = apply { body.addGroupingKey(groupingKey) } - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun additionalBodyProperties(additionalBodyProperties: Map) = apply { + body.additionalProperties(additionalBodyProperties) + } - private var validated: Boolean = false + fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { + body.putAdditionalProperty(key, value) + } - fun validate(): Body = apply { - if (validated) { - return@apply + fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = + apply { + body.putAllAdditionalProperties(additionalBodyProperties) } - timeframeEnd() - timeframeStart() - customerId() - externalCustomerId() - filter() - groupingKeys() - validated = true - } + fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } - fun toBuilder() = Builder().from(this) + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + body.removeAllAdditionalProperties(keys) + } - companion object { + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .timeframeEnd() - * .timeframeStart() - * ``` - */ - @JvmStatic fun builder() = Builder() + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) } - /** A builder for [Body]. */ - class Builder internal constructor() { + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) + } - private var timeframeEnd: JsonField? = null - private var timeframeStart: JsonField? = null - private var customerId: JsonField = JsonMissing.of() - private var externalCustomerId: JsonField = JsonMissing.of() - private var filter: JsonField = JsonMissing.of() - private var groupingKeys: JsonField>? = null - private var additionalProperties: MutableMap = mutableMapOf() + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } - @JvmSynthetic - internal fun from(body: Body) = apply { - timeframeEnd = body.timeframeEnd - timeframeStart = body.timeframeStart - customerId = body.customerId - externalCustomerId = body.externalCustomerId - filter = body.filter - groupingKeys = body.groupingKeys.map { it.toMutableList() } - additionalProperties = body.additionalProperties.toMutableMap() - } - - /** The exclusive upper bound for event timestamps */ - fun timeframeEnd(timeframeEnd: OffsetDateTime) = - timeframeEnd(JsonField.of(timeframeEnd)) - - /** - * Sets [Builder.timeframeEnd] to an arbitrary JSON value. - * - * You should usually call [Builder.timeframeEnd] with a well-typed [OffsetDateTime] - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - fun timeframeEnd(timeframeEnd: JsonField) = apply { - this.timeframeEnd = timeframeEnd - } - - /** The inclusive lower bound for event timestamps */ - fun timeframeStart(timeframeStart: OffsetDateTime) = - timeframeStart(JsonField.of(timeframeStart)) - - /** - * Sets [Builder.timeframeStart] to an arbitrary JSON value. - * - * You should usually call [Builder.timeframeStart] with a well-typed [OffsetDateTime] - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - fun timeframeStart(timeframeStart: JsonField) = apply { - this.timeframeStart = timeframeStart - } - - /** The ID of the customer to which this evaluation is scoped. */ - fun customerId(customerId: String?) = customerId(JsonField.ofNullable(customerId)) - - /** Alias for calling [Builder.customerId] with `customerId.orElse(null)`. */ - fun customerId(customerId: Optional) = customerId(customerId.getOrNull()) - - /** - * Sets [Builder.customerId] to an arbitrary JSON value. - * - * You should usually call [Builder.customerId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun customerId(customerId: JsonField) = apply { this.customerId = customerId } - - /** The external customer ID of the customer to which this evaluation is scoped. */ - fun externalCustomerId(externalCustomerId: String?) = - externalCustomerId(JsonField.ofNullable(externalCustomerId)) - - /** - * Alias for calling [Builder.externalCustomerId] with - * `externalCustomerId.orElse(null)`. - */ - fun externalCustomerId(externalCustomerId: Optional) = - externalCustomerId(externalCustomerId.getOrNull()) - - /** - * Sets [Builder.externalCustomerId] to an arbitrary JSON value. - * - * You should usually call [Builder.externalCustomerId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun externalCustomerId(externalCustomerId: JsonField) = apply { - this.externalCustomerId = externalCustomerId - } + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - /** - * A boolean [computed property](/extensibility/advanced-metrics#computed-properties) - * used to filter the underlying billable metric - */ - fun filter(filter: String?) = filter(JsonField.ofNullable(filter)) + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - /** Alias for calling [Builder.filter] with `filter.orElse(null)`. */ - fun filter(filter: Optional) = filter(filter.getOrNull()) + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } - /** - * Sets [Builder.filter] to an arbitrary JSON value. - * - * You should usually call [Builder.filter] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun filter(filter: JsonField) = apply { this.filter = filter } + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } - /** - * Properties (or - * [computed properties](/extensibility/advanced-metrics#computed-properties)) used to - * group the underlying billable metric - */ - fun groupingKeys(groupingKeys: List) = groupingKeys(JsonField.of(groupingKeys)) + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** - * Sets [Builder.groupingKeys] to an arbitrary JSON value. - * - * You should usually call [Builder.groupingKeys] with a well-typed `List` value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun groupingKeys(groupingKeys: JsonField>) = apply { - this.groupingKeys = groupingKeys.map { it.toMutableList() } - } + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** - * Adds a single [String] to [groupingKeys]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addGroupingKey(groupingKey: String) = apply { - groupingKeys = - (groupingKeys ?: JsonField.of(mutableListOf())).also { - checkKnown("groupingKeys", it).add(groupingKey) - } - } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .timeframeEnd() - * .timeframeStart() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body( - checkRequired("timeframeEnd", timeframeEnd), - checkRequired("timeframeStart", timeframeStart), - customerId, - externalCustomerId, - filter, - (groupingKeys ?: JsonMissing.of()).map { it.toImmutable() }, - additionalProperties.toImmutable(), - ) + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } - override fun equals(other: Any?): Boolean { - if (this === other) { - return true + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) } - return /* spotless:off */ other is Body && timeframeEnd == other.timeframeEnd && timeframeStart == other.timeframeStart && customerId == other.customerId && externalCustomerId == other.externalCustomerId && filter == other.filter && groupingKeys == other.groupingKeys && additionalProperties == other.additionalProperties /* spotless:on */ + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) } - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(timeframeEnd, timeframeStart, customerId, externalCustomerId, filter, groupingKeys, additionalProperties) } - /* spotless:on */ + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } - override fun hashCode(): Int = hashCode + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - override fun toString() = - "Body{timeframeEnd=$timeframeEnd, timeframeStart=$timeframeStart, customerId=$customerId, externalCustomerId=$externalCustomerId, filter=$filter, groupingKeys=$groupingKeys, additionalProperties=$additionalProperties}" - } + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - fun toBuilder() = Builder().from(this) + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } - companion object { + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } /** - * Returns a mutable builder for constructing an instance of [PriceEvaluateParams]. + * Returns an immutable instance of [PriceEvaluateParams]. + * + * Further updates to this [Builder] will not mutate the returned instance. * * The following fields are required: * ```java @@ -548,276 +423,418 @@ private constructor( * .timeframeEnd() * .timeframeStart() * ``` + * + * @throws IllegalStateException if any required field is unset. */ - @JvmStatic fun builder() = Builder() + fun build(): PriceEvaluateParams = + PriceEvaluateParams( + checkRequired("priceId", priceId), + body.build(), + additionalHeaders.build(), + additionalQueryParams.build(), + ) } - /** A builder for [PriceEvaluateParams]. */ - @NoAutoDetect - class Builder internal constructor() { - - private var priceId: String? = null - private var body: Body.Builder = Body.builder() - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + @JvmSynthetic internal fun _body(): Body = body - @JvmSynthetic - internal fun from(priceEvaluateParams: PriceEvaluateParams) = apply { - priceId = priceEvaluateParams.priceId - body = priceEvaluateParams.body.toBuilder() - additionalHeaders = priceEvaluateParams.additionalHeaders.toBuilder() - additionalQueryParams = priceEvaluateParams.additionalQueryParams.toBuilder() + fun _pathParam(index: Int): String = + when (index) { + 0 -> priceId + else -> "" } - fun priceId(priceId: String) = apply { this.priceId = priceId } + override fun _headers(): Headers = additionalHeaders - /** The exclusive upper bound for event timestamps */ - fun timeframeEnd(timeframeEnd: OffsetDateTime) = apply { body.timeframeEnd(timeframeEnd) } + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body + private constructor( + private val timeframeEnd: JsonField, + private val timeframeStart: JsonField, + private val customerId: JsonField, + private val externalCustomerId: JsonField, + private val filter: JsonField, + private val groupingKeys: JsonField>, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("timeframe_end") + @ExcludeMissing + timeframeEnd: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_start") + @ExcludeMissing + timeframeStart: JsonField = JsonMissing.of(), + @JsonProperty("customer_id") + @ExcludeMissing + customerId: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + @JsonProperty("filter") @ExcludeMissing filter: JsonField = JsonMissing.of(), + @JsonProperty("grouping_keys") + @ExcludeMissing + groupingKeys: JsonField> = JsonMissing.of(), + ) : this( + timeframeEnd, + timeframeStart, + customerId, + externalCustomerId, + filter, + groupingKeys, + mutableMapOf(), + ) /** - * Sets [Builder.timeframeEnd] to an arbitrary JSON value. + * The exclusive upper bound for event timestamps * - * You should usually call [Builder.timeframeEnd] with a well-typed [OffsetDateTime] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun timeframeEnd(timeframeEnd: JsonField) = apply { - body.timeframeEnd(timeframeEnd) - } - - /** The inclusive lower bound for event timestamps */ - fun timeframeStart(timeframeStart: OffsetDateTime) = apply { - body.timeframeStart(timeframeStart) - } + fun timeframeEnd(): OffsetDateTime = timeframeEnd.getRequired("timeframe_end") /** - * Sets [Builder.timeframeStart] to an arbitrary JSON value. + * The inclusive lower bound for event timestamps * - * You should usually call [Builder.timeframeStart] with a well-typed [OffsetDateTime] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). */ - fun timeframeStart(timeframeStart: JsonField) = apply { - body.timeframeStart(timeframeStart) - } - - /** The ID of the customer to which this evaluation is scoped. */ - fun customerId(customerId: String?) = apply { body.customerId(customerId) } - - /** Alias for calling [Builder.customerId] with `customerId.orElse(null)`. */ - fun customerId(customerId: Optional) = customerId(customerId.getOrNull()) + fun timeframeStart(): OffsetDateTime = timeframeStart.getRequired("timeframe_start") /** - * Sets [Builder.customerId] to an arbitrary JSON value. + * The ID of the customer to which this evaluation is scoped. * - * You should usually call [Builder.customerId] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun customerId(customerId: JsonField) = apply { body.customerId(customerId) } + fun customerId(): Optional = + Optional.ofNullable(customerId.getNullable("customer_id")) - /** The external customer ID of the customer to which this evaluation is scoped. */ - fun externalCustomerId(externalCustomerId: String?) = apply { - body.externalCustomerId(externalCustomerId) - } + /** + * The external customer ID of the customer to which this evaluation is scoped. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun externalCustomerId(): Optional = + Optional.ofNullable(externalCustomerId.getNullable("external_customer_id")) /** - * Alias for calling [Builder.externalCustomerId] with `externalCustomerId.orElse(null)`. + * A boolean [computed property](/extensibility/advanced-metrics#computed-properties) used + * to filter the underlying billable metric + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun externalCustomerId(externalCustomerId: Optional) = - externalCustomerId(externalCustomerId.getOrNull()) + fun filter(): Optional = Optional.ofNullable(filter.getNullable("filter")) /** - * Sets [Builder.externalCustomerId] to an arbitrary JSON value. + * Properties (or + * [computed properties](/extensibility/advanced-metrics#computed-properties)) used to group + * the underlying billable metric * - * You should usually call [Builder.externalCustomerId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun externalCustomerId(externalCustomerId: JsonField) = apply { - body.externalCustomerId(externalCustomerId) - } + fun groupingKeys(): Optional> = + Optional.ofNullable(groupingKeys.getNullable("grouping_keys")) /** - * A boolean [computed property](/extensibility/advanced-metrics#computed-properties) used - * to filter the underlying billable metric + * Returns the raw JSON value of [timeframeEnd]. + * + * Unlike [timeframeEnd], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun filter(filter: String?) = apply { body.filter(filter) } + @JsonProperty("timeframe_end") + @ExcludeMissing + fun _timeframeEnd(): JsonField = timeframeEnd - /** Alias for calling [Builder.filter] with `filter.orElse(null)`. */ - fun filter(filter: Optional) = filter(filter.getOrNull()) + /** + * Returns the raw JSON value of [timeframeStart]. + * + * Unlike [timeframeStart], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("timeframe_start") + @ExcludeMissing + fun _timeframeStart(): JsonField = timeframeStart /** - * Sets [Builder.filter] to an arbitrary JSON value. + * Returns the raw JSON value of [customerId]. * - * You should usually call [Builder.filter] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. + * Unlike [customerId], this method doesn't throw if the JSON field has an unexpected type. */ - fun filter(filter: JsonField) = apply { body.filter(filter) } + @JsonProperty("customer_id") + @ExcludeMissing + fun _customerId(): JsonField = customerId /** - * Properties (or - * [computed properties](/extensibility/advanced-metrics#computed-properties)) used to group - * the underlying billable metric + * Returns the raw JSON value of [externalCustomerId]. + * + * Unlike [externalCustomerId], this method doesn't throw if the JSON field has an + * unexpected type. */ - fun groupingKeys(groupingKeys: List) = apply { body.groupingKeys(groupingKeys) } + @JsonProperty("external_customer_id") + @ExcludeMissing + fun _externalCustomerId(): JsonField = externalCustomerId /** - * Sets [Builder.groupingKeys] to an arbitrary JSON value. + * Returns the raw JSON value of [filter]. * - * You should usually call [Builder.groupingKeys] with a well-typed `List` value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [filter], this method doesn't throw if the JSON field has an unexpected type. */ - fun groupingKeys(groupingKeys: JsonField>) = apply { - body.groupingKeys(groupingKeys) - } + @JsonProperty("filter") @ExcludeMissing fun _filter(): JsonField = filter /** - * Adds a single [String] to [groupingKeys]. + * Returns the raw JSON value of [groupingKeys]. * - * @throws IllegalStateException if the field was previously set to a non-list. + * Unlike [groupingKeys], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun addGroupingKey(groupingKey: String) = apply { body.addGroupingKey(groupingKey) } + @JsonProperty("grouping_keys") + @ExcludeMissing + fun _groupingKeys(): JsonField> = groupingKeys - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { - body.additionalProperties(additionalBodyProperties) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } - fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - body.putAdditionalProperty(key, value) + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .timeframeEnd() + * .timeframeStart() + * ``` + */ + @JvmStatic fun builder() = Builder() } - fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = - apply { - body.putAllAdditionalProperties(additionalBodyProperties) + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var timeframeEnd: JsonField? = null + private var timeframeStart: JsonField? = null + private var customerId: JsonField = JsonMissing.of() + private var externalCustomerId: JsonField = JsonMissing.of() + private var filter: JsonField = JsonMissing.of() + private var groupingKeys: JsonField>? = null + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + timeframeEnd = body.timeframeEnd + timeframeStart = body.timeframeStart + customerId = body.customerId + externalCustomerId = body.externalCustomerId + filter = body.filter + groupingKeys = body.groupingKeys.map { it.toMutableList() } + additionalProperties = body.additionalProperties.toMutableMap() } - fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + /** The exclusive upper bound for event timestamps */ + fun timeframeEnd(timeframeEnd: OffsetDateTime) = + timeframeEnd(JsonField.of(timeframeEnd)) - fun removeAllAdditionalBodyProperties(keys: Set) = apply { - body.removeAllAdditionalProperties(keys) - } + /** + * Sets [Builder.timeframeEnd] to an arbitrary JSON value. + * + * You should usually call [Builder.timeframeEnd] with a well-typed [OffsetDateTime] + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + fun timeframeEnd(timeframeEnd: JsonField) = apply { + this.timeframeEnd = timeframeEnd + } - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** The inclusive lower bound for event timestamps */ + fun timeframeStart(timeframeStart: OffsetDateTime) = + timeframeStart(JsonField.of(timeframeStart)) - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** + * Sets [Builder.timeframeStart] to an arbitrary JSON value. + * + * You should usually call [Builder.timeframeStart] with a well-typed [OffsetDateTime] + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + fun timeframeStart(timeframeStart: JsonField) = apply { + this.timeframeStart = timeframeStart + } - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } + /** The ID of the customer to which this evaluation is scoped. */ + fun customerId(customerId: String?) = customerId(JsonField.ofNullable(customerId)) - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } + /** Alias for calling [Builder.customerId] with `customerId.orElse(null)`. */ + fun customerId(customerId: Optional) = customerId(customerId.getOrNull()) - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** + * Sets [Builder.customerId] to an arbitrary JSON value. + * + * You should usually call [Builder.customerId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun customerId(customerId: JsonField) = apply { this.customerId = customerId } - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** The external customer ID of the customer to which this evaluation is scoped. */ + fun externalCustomerId(externalCustomerId: String?) = + externalCustomerId(JsonField.ofNullable(externalCustomerId)) - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } + /** + * Alias for calling [Builder.externalCustomerId] with + * `externalCustomerId.orElse(null)`. + */ + fun externalCustomerId(externalCustomerId: Optional) = + externalCustomerId(externalCustomerId.getOrNull()) - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } + /** + * Sets [Builder.externalCustomerId] to an arbitrary JSON value. + * + * You should usually call [Builder.externalCustomerId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun externalCustomerId(externalCustomerId: JsonField) = apply { + this.externalCustomerId = externalCustomerId + } - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** + * A boolean [computed property](/extensibility/advanced-metrics#computed-properties) + * used to filter the underlying billable metric + */ + fun filter(filter: String?) = filter(JsonField.ofNullable(filter)) - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** Alias for calling [Builder.filter] with `filter.orElse(null)`. */ + fun filter(filter: Optional) = filter(filter.getOrNull()) - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + /** + * Sets [Builder.filter] to an arbitrary JSON value. + * + * You should usually call [Builder.filter] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun filter(filter: JsonField) = apply { this.filter = filter } - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } + /** + * Properties (or + * [computed properties](/extensibility/advanced-metrics#computed-properties)) used to + * group the underlying billable metric + */ + fun groupingKeys(groupingKeys: List) = groupingKeys(JsonField.of(groupingKeys)) - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + /** + * Sets [Builder.groupingKeys] to an arbitrary JSON value. + * + * You should usually call [Builder.groupingKeys] with a well-typed `List` value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun groupingKeys(groupingKeys: JsonField>) = apply { + this.groupingKeys = groupingKeys.map { it.toMutableList() } + } - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + /** + * Adds a single [String] to [groupingKeys]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addGroupingKey(groupingKey: String) = apply { + groupingKeys = + (groupingKeys ?: JsonField.of(mutableListOf())).also { + checkKnown("groupingKeys", it).add(groupingKey) + } + } - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) - } + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) } - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .timeframeEnd() + * .timeframeStart() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body( + checkRequired("timeframeEnd", timeframeEnd), + checkRequired("timeframeStart", timeframeStart), + customerId, + externalCustomerId, + filter, + (groupingKeys ?: JsonMissing.of()).map { it.toImmutable() }, + additionalProperties.toMutableMap(), + ) } - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } + private var validated: Boolean = false - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + fun validate(): Body = apply { + if (validated) { + return@apply + } + + timeframeEnd() + timeframeStart() + customerId() + externalCustomerId() + filter() + groupingKeys() + validated = true } - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + override fun equals(other: Any?): Boolean { + if (this === other) { + return true } - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } - - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) + return /* spotless:off */ other is Body && timeframeEnd == other.timeframeEnd && timeframeStart == other.timeframeStart && customerId == other.customerId && externalCustomerId == other.externalCustomerId && filter == other.filter && groupingKeys == other.groupingKeys && additionalProperties == other.additionalProperties /* spotless:on */ } - /** - * Returns an immutable instance of [PriceEvaluateParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .priceId() - * .timeframeEnd() - * .timeframeStart() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): PriceEvaluateParams = - PriceEvaluateParams( - checkRequired("priceId", priceId), - body.build(), - additionalHeaders.build(), - additionalQueryParams.build(), - ) + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(timeframeEnd, timeframeStart, customerId, externalCustomerId, filter, groupingKeys, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{timeframeEnd=$timeframeEnd, timeframeStart=$timeframeStart, customerId=$customerId, externalCustomerId=$externalCustomerId, filter=$filter, groupingKeys=$groupingKeys, additionalProperties=$additionalProperties}" } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceEvaluateResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceEvaluateResponse.kt index cbdebf2d..88407109 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceEvaluateResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceEvaluateResponse.kt @@ -10,24 +10,26 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects -@NoAutoDetect class PriceEvaluateResponse -@JsonCreator private constructor( - @JsonProperty("data") - @ExcludeMissing - private val data: JsonField> = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val data: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") + @ExcludeMissing + data: JsonField> = JsonMissing.of() + ) : this(data, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -41,20 +43,15 @@ private constructor( */ @JsonProperty("data") @ExcludeMissing fun _data(): JsonField> = data + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PriceEvaluateResponse = apply { - if (validated) { - return@apply - } - - data().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -142,10 +139,21 @@ private constructor( fun build(): PriceEvaluateResponse = PriceEvaluateResponse( checkRequired("data", data).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PriceEvaluateResponse = apply { + if (validated) { + return@apply + } + + data().forEach { it.validate() } + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceExternalPriceIdFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceExternalPriceIdFetchParams.kt index 66c5be89..4beee51b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceExternalPriceIdFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceExternalPriceIdFetchParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -27,16 +26,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> externalPriceId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - fun toBuilder() = Builder().from(this) companion object { @@ -54,7 +43,6 @@ private constructor( } /** A builder for [PriceExternalPriceIdFetchParams]. */ - @NoAutoDetect class Builder internal constructor() { private var externalPriceId: String? = null @@ -192,6 +180,16 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> externalPriceId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceExternalPriceIdUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceExternalPriceIdUpdateParams.kt index cdf0d4a0..92d94138 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceExternalPriceIdUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceExternalPriceIdUpdateParams.kt @@ -10,14 +10,12 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -59,145 +57,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - fun _pathParam(index: Int): String = - when (index) { - 0 -> externalPriceId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) - - /** - * Returns the raw JSON value of [metadata]. - * - * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - metadata().ifPresent { it.validate() } - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** Returns a mutable builder for constructing an instance of [Body]. */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var metadata: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - metadata = body.metadata - additionalProperties = body.additionalProperties.toMutableMap() - } - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by - * setting `metadata` to `null`. - */ - fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) - - /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ - fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) - - /** - * Sets [Builder.metadata] to an arbitrary JSON value. - * - * You should usually call [Builder.metadata] with a well-typed [Metadata] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun metadata(metadata: JsonField) = apply { this.metadata = metadata } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - */ - fun build(): Body = Body(metadata, additionalProperties.toImmutable()) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && metadata == other.metadata && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(metadata, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{metadata=$metadata, additionalProperties=$additionalProperties}" - } - fun toBuilder() = Builder().from(this) companion object { @@ -215,7 +74,6 @@ private constructor( } /** A builder for [PriceExternalPriceIdUpdateParams]. */ - @NoAutoDetect class Builder internal constructor() { private var externalPriceId: String? = null @@ -394,33 +252,173 @@ private constructor( ) } - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by setting - * the value to `null`, and the entire metadata mapping can be cleared by setting `metadata` to - * `null`. - */ - @NoAutoDetect - class Metadata - @JsonCreator + @JvmSynthetic internal fun _body(): Body = body + + fun _pathParam(index: Int): String = + when (index) { + 0 -> externalPriceId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of() + ) : this(metadata, mutableMapOf()) + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) + + /** + * Returns the raw JSON value of [metadata]. + * + * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** Returns a mutable builder for constructing an instance of [Body]. */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var metadata: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + metadata = body.metadata + additionalProperties = body.additionalProperties.toMutableMap() + } + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by + * setting `metadata` to `null`. + */ + fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) + + /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ + fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) + + /** + * Sets [Builder.metadata] to an arbitrary JSON value. + * + * You should usually call [Builder.metadata] with a well-typed [Metadata] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun metadata(metadata: JsonField) = apply { this.metadata = metadata } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + */ + fun build(): Body = Body(metadata, additionalProperties.toMutableMap()) + } private var validated: Boolean = false - fun validate(): Metadata = apply { + fun validate(): Body = apply { if (validated) { return@apply } + metadata().ifPresent { it.validate() } validated = true } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Body && metadata == other.metadata && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(metadata, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{metadata=$metadata, additionalProperties=$additionalProperties}" + } + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by setting + * the value to `null`, and the entire metadata mapping can be cleared by setting `metadata` to + * `null`. + */ + class Metadata + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -463,7 +461,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceFetchParams.kt index 5eef9927..0597f89e 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceFetchParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -23,16 +22,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> priceId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - fun toBuilder() = Builder().from(this) companion object { @@ -49,7 +38,6 @@ private constructor( } /** A builder for [PriceFetchParams]. */ - @NoAutoDetect class Builder internal constructor() { private var priceId: String? = null @@ -183,6 +171,16 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> priceId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceListPage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceListPage.kt index 712f82ce..6841dfe9 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceListPage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceListPage.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.blocking.PriceService +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.stream.Stream @@ -84,17 +82,19 @@ private constructor( PriceListPage(pricesService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -107,9 +107,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -178,7 +184,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceListPageAsync.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceListPageAsync.kt index 86447ef2..4627c7e7 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceListPageAsync.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceListPageAsync.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.async.PriceServiceAsync +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.concurrent.CompletableFuture @@ -86,17 +84,19 @@ private constructor( PriceListPageAsync(pricesService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -109,9 +109,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -180,7 +186,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceListParams.kt index 622f8366..acb672e1 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceListParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams @@ -35,17 +34,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - cursor?.let { put("cursor", it) } - limit?.let { put("limit", it.toString()) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -57,7 +45,6 @@ private constructor( } /** A builder for [PriceListParams]. */ - @NoAutoDetect class Builder internal constructor() { private var cursor: String? = null @@ -202,6 +189,17 @@ private constructor( PriceListParams(cursor, limit, additionalHeaders.build(), additionalQueryParams.build()) } + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + cursor?.let { put("cursor", it) } + limit?.let { put("limit", it.toString()) } + putAll(additionalQueryParams) + } + .build() + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceUpdateParams.kt index 33bf99d4..9314f7e4 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceUpdateParams.kt @@ -10,14 +10,12 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -59,145 +57,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - fun _pathParam(index: Int): String = - when (index) { - 0 -> priceId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) - - /** - * Returns the raw JSON value of [metadata]. - * - * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - metadata().ifPresent { it.validate() } - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** Returns a mutable builder for constructing an instance of [Body]. */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var metadata: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - metadata = body.metadata - additionalProperties = body.additionalProperties.toMutableMap() - } - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by - * setting `metadata` to `null`. - */ - fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) - - /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ - fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) - - /** - * Sets [Builder.metadata] to an arbitrary JSON value. - * - * You should usually call [Builder.metadata] with a well-typed [Metadata] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun metadata(metadata: JsonField) = apply { this.metadata = metadata } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - */ - fun build(): Body = Body(metadata, additionalProperties.toImmutable()) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && metadata == other.metadata && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(metadata, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{metadata=$metadata, additionalProperties=$additionalProperties}" - } - fun toBuilder() = Builder().from(this) companion object { @@ -214,7 +73,6 @@ private constructor( } /** A builder for [PriceUpdateParams]. */ - @NoAutoDetect class Builder internal constructor() { private var priceId: String? = null @@ -389,33 +247,173 @@ private constructor( ) } - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by setting - * the value to `null`, and the entire metadata mapping can be cleared by setting `metadata` to - * `null`. - */ - @NoAutoDetect - class Metadata - @JsonCreator + @JvmSynthetic internal fun _body(): Body = body + + fun _pathParam(index: Int): String = + when (index) { + 0 -> priceId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of() + ) : this(metadata, mutableMapOf()) + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) + + /** + * Returns the raw JSON value of [metadata]. + * + * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** Returns a mutable builder for constructing an instance of [Body]. */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var metadata: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + metadata = body.metadata + additionalProperties = body.additionalProperties.toMutableMap() + } + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by + * setting `metadata` to `null`. + */ + fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) + + /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ + fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) + + /** + * Sets [Builder.metadata] to an arbitrary JSON value. + * + * You should usually call [Builder.metadata] with a well-typed [Metadata] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun metadata(metadata: JsonField) = apply { this.metadata = metadata } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + */ + fun build(): Body = Body(metadata, additionalProperties.toMutableMap()) + } private var validated: Boolean = false - fun validate(): Metadata = apply { + fun validate(): Body = apply { if (validated) { return@apply } + metadata().ifPresent { it.validate() } validated = true } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Body && metadata == other.metadata && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(metadata, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{metadata=$metadata, additionalProperties=$additionalProperties}" + } + + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by setting + * the value to `null`, and the entire metadata mapping can be cleared by setting `metadata` to + * `null`. + */ + class Metadata + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -458,7 +456,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/Subscription.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/Subscription.kt index 60864822..c145b5b7 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/Subscription.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/Subscription.kt @@ -20,14 +20,13 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -49,86 +48,131 @@ import kotlin.jvm.optionals.getOrNull * of events, you can expect an invoice to contain usage-based charges for the previous period, and * a recurring fee for the following period. */ -@NoAutoDetect class Subscription -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("active_plan_phase_order") - @ExcludeMissing - private val activePlanPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_intervals") - @ExcludeMissing - private val adjustmentIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_anchor_configuration") - @ExcludeMissing - private val billingCycleAnchorConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("default_invoice_memo") - @ExcludeMissing - private val defaultInvoiceMemo: JsonField = JsonMissing.of(), - @JsonProperty("discount_intervals") - @ExcludeMissing - private val discountIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_schedule") - @ExcludeMissing - private val fixedFeeQuantitySchedule: JsonField> = - JsonMissing.of(), - @JsonProperty("invoicing_threshold") - @ExcludeMissing - private val invoicingThreshold: JsonField = JsonMissing.of(), - @JsonProperty("maximum_intervals") - @ExcludeMissing - private val maximumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum_intervals") - @ExcludeMissing - private val minimumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("plan") @ExcludeMissing private val plan: JsonField = JsonMissing.of(), - @JsonProperty("price_intervals") - @ExcludeMissing - private val priceIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("redeemed_coupon") - @ExcludeMissing - private val redeemedCoupon: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("trial_info") - @ExcludeMissing - private val trialInfo: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val activePlanPhaseOrder: JsonField, + private val adjustmentIntervals: JsonField>, + private val autoCollection: JsonField, + private val billingCycleAnchorConfiguration: JsonField, + private val billingCycleDay: JsonField, + private val createdAt: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val customer: JsonField, + private val defaultInvoiceMemo: JsonField, + private val discountIntervals: JsonField>, + private val endDate: JsonField, + private val fixedFeeQuantitySchedule: JsonField>, + private val invoicingThreshold: JsonField, + private val maximumIntervals: JsonField>, + private val metadata: JsonField, + private val minimumIntervals: JsonField>, + private val netTerms: JsonField, + private val plan: JsonField, + private val priceIntervals: JsonField>, + private val redeemedCoupon: JsonField, + private val startDate: JsonField, + private val status: JsonField, + private val trialInfo: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("active_plan_phase_order") + @ExcludeMissing + activePlanPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_intervals") + @ExcludeMissing + adjustmentIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_anchor_configuration") + @ExcludeMissing + billingCycleAnchorConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("customer") @ExcludeMissing customer: JsonField = JsonMissing.of(), + @JsonProperty("default_invoice_memo") + @ExcludeMissing + defaultInvoiceMemo: JsonField = JsonMissing.of(), + @JsonProperty("discount_intervals") + @ExcludeMissing + discountIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_schedule") + @ExcludeMissing + fixedFeeQuantitySchedule: JsonField> = JsonMissing.of(), + @JsonProperty("invoicing_threshold") + @ExcludeMissing + invoicingThreshold: JsonField = JsonMissing.of(), + @JsonProperty("maximum_intervals") + @ExcludeMissing + maximumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("metadata") @ExcludeMissing metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum_intervals") + @ExcludeMissing + minimumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("plan") @ExcludeMissing plan: JsonField = JsonMissing.of(), + @JsonProperty("price_intervals") + @ExcludeMissing + priceIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("redeemed_coupon") + @ExcludeMissing + redeemedCoupon: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + @JsonProperty("trial_info") + @ExcludeMissing + trialInfo: JsonField = JsonMissing.of(), + ) : this( + id, + activePlanPhaseOrder, + adjustmentIntervals, + autoCollection, + billingCycleAnchorConfiguration, + billingCycleDay, + createdAt, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + customer, + defaultInvoiceMemo, + discountIntervals, + endDate, + fixedFeeQuantitySchedule, + invoicingThreshold, + maximumIntervals, + metadata, + minimumIntervals, + netTerms, + plan, + priceIntervals, + redeemedCoupon, + startDate, + status, + trialInfo, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -583,44 +627,15 @@ private constructor( */ @JsonProperty("trial_info") @ExcludeMissing fun _trialInfo(): JsonField = trialInfo + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Subscription = apply { - if (validated) { - return@apply - } - - id() - activePlanPhaseOrder() - adjustmentIntervals().forEach { it.validate() } - autoCollection() - billingCycleAnchorConfiguration().validate() - billingCycleDay() - createdAt() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - customer().validate() - defaultInvoiceMemo() - discountIntervals().forEach { it.validate() } - endDate() - fixedFeeQuantitySchedule().forEach { it.validate() } - invoicingThreshold() - maximumIntervals().forEach { it.validate() } - metadata().validate() - minimumIntervals().forEach { it.validate() } - netTerms() - plan().validate() - priceIntervals().forEach { it.validate() } - redeemedCoupon().ifPresent { it.validate() } - startDate() - status() - trialInfo().validate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1342,31 +1357,72 @@ private constructor( checkRequired("startDate", startDate), checkRequired("status", status), checkRequired("trialInfo", trialInfo), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): Subscription = apply { + if (validated) { + return@apply + } + + id() + activePlanPhaseOrder() + adjustmentIntervals().forEach { it.validate() } + autoCollection() + billingCycleAnchorConfiguration().validate() + billingCycleDay() + createdAt() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + customer().validate() + defaultInvoiceMemo() + discountIntervals().forEach { it.validate() } + endDate() + fixedFeeQuantitySchedule().forEach { it.validate() } + invoicingThreshold() + maximumIntervals().forEach { it.validate() } + metadata().validate() + minimumIntervals().forEach { it.validate() } + netTerms() + plan().validate() + priceIntervals().forEach { it.validate() } + redeemedCoupon().ifPresent { it.validate() } + startDate() + status() + trialInfo().validate() + validated = true + } + class AdjustmentInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment") - @ExcludeMissing - private val adjustment: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustment: JsonField, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment") + @ExcludeMissing + adjustment: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(id, adjustment, appliesToPriceIntervalIds, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -1449,24 +1505,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AdjustmentInterval = apply { - if (validated) { - return@apply - } - - id() - adjustment().validate() - appliesToPriceIntervalIds() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1670,10 +1717,25 @@ private constructor( }, checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AdjustmentInterval = apply { + if (validated) { + return@apply + } + + id() + adjustment().validate() + appliesToPriceIntervalIds() + endDate() + startDate() + validated = true + } + @JsonDeserialize(using = Adjustment.Deserializer::class) @JsonSerialize(using = Adjustment.Serializer::class) class Adjustment @@ -1962,35 +2024,50 @@ private constructor( } } - @NoAutoDetect class PlanPhaseUsageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + usageDiscount, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2117,26 +2194,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseUsageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2374,10 +2440,27 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseUsageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + usageDiscount() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2498,35 +2581,50 @@ private constructor( "PlanPhaseUsageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, usageDiscount=$usageDiscount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseAmountDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amountDiscount, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2653,26 +2751,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseAmountDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amountDiscount() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2910,10 +2997,27 @@ private constructor( checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseAmountDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amountDiscount() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3034,35 +3138,50 @@ private constructor( "PlanPhaseAmountDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhasePercentageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val percentageDiscount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + percentageDiscount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3190,26 +3309,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhasePercentageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - percentageDiscount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3449,10 +3557,27 @@ private constructor( checkRequired("percentageDiscount", percentageDiscount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhasePercentageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + percentageDiscount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3573,38 +3698,55 @@ private constructor( "PlanPhasePercentageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, percentageDiscount=$percentageDiscount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMinimumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val itemId: JsonField, + private val minimumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + itemId, + minimumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3748,27 +3890,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMinimumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - itemId() - minimumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4022,10 +4152,28 @@ private constructor( checkRequired("minimumAmount", minimumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMinimumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + itemId() + minimumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4146,35 +4294,50 @@ private constructor( "PlanPhaseMinimumAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, itemId=$itemId, minimumAmount=$minimumAmount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMaximumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val maximumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + maximumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4301,26 +4464,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMaximumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - maximumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4557,10 +4709,27 @@ private constructor( checkRequired("maximumAmount", maximumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMaximumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + maximumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4700,19 +4869,21 @@ private constructor( "AdjustmentInterval{id=$id, adjustment=$adjustment, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleAnchorConfiguration - @JsonCreator private constructor( - @JsonProperty("day") @ExcludeMissing private val day: JsonField = JsonMissing.of(), - @JsonProperty("month") - @ExcludeMissing - private val month: JsonField = JsonMissing.of(), - @JsonProperty("year") @ExcludeMissing private val year: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val day: JsonField, + private val month: JsonField, + private val year: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("day") @ExcludeMissing day: JsonField = JsonMissing.of(), + @JsonProperty("month") @ExcludeMissing month: JsonField = JsonMissing.of(), + @JsonProperty("year") @ExcludeMissing year: JsonField = JsonMissing.of(), + ) : this(day, month, year, mutableMapOf()) + /** * The day of the month on which the billing cycle is anchored. If the maximum number of * days in a month is greater than this value, the last day of the month is the billing @@ -4763,22 +4934,15 @@ private constructor( */ @JsonProperty("year") @ExcludeMissing fun _year(): JsonField = year + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleAnchorConfiguration = apply { - if (validated) { - return@apply - } - - day() - month() - year() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4917,10 +5081,23 @@ private constructor( checkRequired("day", day), month, year, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleAnchorConfiguration = apply { + if (validated) { + return@apply + } + + day() + month() + year() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5116,32 +5293,47 @@ private constructor( } } - @NoAutoDetect class AmountDiscountInterval - @JsonCreator private constructor( - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + amountDiscount, + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + mutableMapOf(), + ) + /** * Only available if discount_type is `amount`. * @@ -5255,25 +5447,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AmountDiscountInterval = apply { - if (validated) { - return@apply - } - - amountDiscount() - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5487,10 +5669,26 @@ private constructor( checkRequired("discountType", discountType), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AmountDiscountInterval = apply { + if (validated) { + return@apply + } + + amountDiscount() + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -5609,32 +5807,47 @@ private constructor( "AmountDiscountInterval{amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PercentageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val percentageDiscount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + percentageDiscount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -5748,25 +5961,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PercentageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - percentageDiscount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5984,10 +6187,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("percentageDiscount", percentageDiscount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PercentageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + percentageDiscount() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6106,32 +6325,47 @@ private constructor( "PercentageDiscountInterval{appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, percentageDiscount=$percentageDiscount, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class UsageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + usageDiscount, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -6246,25 +6480,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UsageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6480,10 +6704,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("startDate", startDate), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UsageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + usageDiscount() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6603,26 +6843,29 @@ private constructor( } } - @NoAutoDetect class FixedFeeQuantitySchedule - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(endDate, priceId, quantity, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -6680,23 +6923,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantitySchedule = apply { - if (validated) { - return@apply - } - - endDate() - priceId() - quantity() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6823,10 +7058,24 @@ private constructor( checkRequired("priceId", priceId), checkRequired("quantity", quantity), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantitySchedule = apply { + if (validated) { + return@apply + } + + endDate() + priceId() + quantity() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6845,29 +7094,42 @@ private constructor( "FixedFeeQuantitySchedule{endDate=$endDate, priceId=$priceId, quantity=$quantity, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MaximumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val maximumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + maximumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this maximum interval applies to. * @@ -6960,24 +7222,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MaximumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - maximumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7165,10 +7418,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("maximumAmount", maximumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MaximumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + maximumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7192,27 +7460,20 @@ private constructor( * dictionary. Individual keys can be removed by setting the value to `null`, and the entire * metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7256,7 +7517,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -7276,29 +7547,42 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class MinimumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val minimumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + minimumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this minimum interval applies to. * @@ -7391,24 +7675,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MinimumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - minimumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7596,10 +7871,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("minimumAmount", minimumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MinimumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + minimumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7622,43 +7912,62 @@ private constructor( * The Price Interval resource represents a period of time for which a price will bill on a * subscription. A subscription’s price intervals define its billing behavior. */ - @NoAutoDetect class PriceInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("filter") - @ExcludeMissing - private val filter: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_transitions") - @ExcludeMissing - private val fixedFeeQuantityTransitions: JsonField> = - JsonMissing.of(), - @JsonProperty("price") - @ExcludeMissing - private val price: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_customer_ids") - @ExcludeMissing - private val usageCustomerIds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billingCycleDay: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val endDate: JsonField, + private val filter: JsonField, + private val fixedFeeQuantityTransitions: JsonField>, + private val price: JsonField, + private val startDate: JsonField, + private val usageCustomerIds: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("filter") @ExcludeMissing filter: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_transitions") + @ExcludeMissing + fixedFeeQuantityTransitions: JsonField> = + JsonMissing.of(), + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_customer_ids") + @ExcludeMissing + usageCustomerIds: JsonField> = JsonMissing.of(), + ) : this( + id, + billingCycleDay, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + endDate, + filter, + fixedFeeQuantityTransitions, + price, + startDate, + usageCustomerIds, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -7856,29 +8165,15 @@ private constructor( @ExcludeMissing fun _usageCustomerIds(): JsonField> = usageCustomerIds + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PriceInterval = apply { - if (validated) { - return@apply - } - - id() - billingCycleDay() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - endDate() - filter() - fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } - price().validate() - startDate() - usageCustomerIds() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8363,27 +8658,51 @@ private constructor( checkRequired("price", price), checkRequired("startDate", startDate), checkRequired("usageCustomerIds", usageCustomerIds).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): PriceInterval = apply { + if (validated) { + return@apply + } + + id() + billingCycleDay() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + endDate() + filter() + fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } + price().validate() + startDate() + usageCustomerIds() + validated = true + } + class FixedFeeQuantityTransition - @JsonCreator private constructor( - @JsonProperty("effective_date") - @ExcludeMissing - private val effectiveDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val effectiveDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("effective_date") + @ExcludeMissing + effectiveDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") + @ExcludeMissing + priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + ) : this(effectiveDate, priceId, quantity, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -8430,22 +8749,15 @@ private constructor( */ @JsonProperty("quantity") @ExcludeMissing fun _quantity(): JsonField = quantity + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantityTransition = apply { - if (validated) { - return@apply - } - - effectiveDate() - priceId() - quantity() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8559,10 +8871,23 @@ private constructor( checkRequired("effectiveDate", effectiveDate), checkRequired("priceId", priceId), checkRequired("quantity", quantity), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantityTransition = apply { + if (validated) { + return@apply + } + + effectiveDate() + priceId() + quantity() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8599,23 +8924,27 @@ private constructor( "PriceInterval{id=$id, billingCycleDay=$billingCycleDay, currentBillingPeriodEndDate=$currentBillingPeriodEndDate, currentBillingPeriodStartDate=$currentBillingPeriodStartDate, endDate=$endDate, filter=$filter, fixedFeeQuantityTransitions=$fixedFeeQuantityTransitions, price=$price, startDate=$startDate, usageCustomerIds=$usageCustomerIds, additionalProperties=$additionalProperties}" } - @NoAutoDetect class RedeemedCoupon - @JsonCreator private constructor( - @JsonProperty("coupon_id") - @ExcludeMissing - private val couponId: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val couponId: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("coupon_id") + @ExcludeMissing + couponId: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(couponId, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -8660,22 +8989,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): RedeemedCoupon = apply { - if (validated) { - return@apply - } - - couponId() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8786,10 +9108,23 @@ private constructor( checkRequired("couponId", couponId), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): RedeemedCoupon = apply { + if (validated) { + return@apply + } + + couponId() + endDate() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8911,17 +9246,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TrialInfo - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of() + ) : this(endDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -8938,20 +9275,15 @@ private constructor( @ExcludeMissing fun _endDate(): JsonField = endDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TrialInfo = apply { - if (validated) { - return@apply - } - - endDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9026,7 +9358,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): TrialInfo = - TrialInfo(checkRequired("endDate", endDate), additionalProperties.toImmutable()) + TrialInfo(checkRequired("endDate", endDate), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TrialInfo = apply { + if (validated) { + return@apply + } + + endDate() + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCancelParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCancelParams.kt index cf2e0d73..7345b6e3 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCancelParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCancelParams.kt @@ -11,15 +11,13 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -141,6 +139,251 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [SubscriptionCancelParams]. + * + * The following fields are required: + * ```java + * .subscriptionId() + * .cancelOption() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [SubscriptionCancelParams]. */ + class Builder internal constructor() { + + private var subscriptionId: String? = null + private var body: Body.Builder = Body.builder() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from(subscriptionCancelParams: SubscriptionCancelParams) = apply { + subscriptionId = subscriptionCancelParams.subscriptionId + body = subscriptionCancelParams.body.toBuilder() + additionalHeaders = subscriptionCancelParams.additionalHeaders.toBuilder() + additionalQueryParams = subscriptionCancelParams.additionalQueryParams.toBuilder() + } + + fun subscriptionId(subscriptionId: String) = apply { this.subscriptionId = subscriptionId } + + /** Determines the timing of subscription cancellation */ + fun cancelOption(cancelOption: CancelOption) = apply { body.cancelOption(cancelOption) } + + /** + * Sets [Builder.cancelOption] to an arbitrary JSON value. + * + * You should usually call [Builder.cancelOption] with a well-typed [CancelOption] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun cancelOption(cancelOption: JsonField) = apply { + body.cancelOption(cancelOption) + } + + /** + * If false, this request will fail if it would void an issued invoice or create a credit + * note. Consider using this as a safety mechanism if you do not expect existing invoices to + * be changed. + */ + fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Boolean?) = apply { + body.allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid) + } + + /** + * Alias for [Builder.allowInvoiceCreditOrVoid]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Boolean) = + allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid as Boolean?) + + /** + * Alias for calling [Builder.allowInvoiceCreditOrVoid] with + * `allowInvoiceCreditOrVoid.orElse(null)`. + */ + fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Optional) = + allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid.getOrNull()) + + /** + * Sets [Builder.allowInvoiceCreditOrVoid] to an arbitrary JSON value. + * + * You should usually call [Builder.allowInvoiceCreditOrVoid] with a well-typed [Boolean] + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. + */ + fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: JsonField) = apply { + body.allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid) + } + + /** + * The date that the cancellation should take effect. This parameter can only be passed if + * the `cancel_option` is `requested_date`. + */ + fun cancellationDate(cancellationDate: OffsetDateTime?) = apply { + body.cancellationDate(cancellationDate) + } + + /** Alias for calling [Builder.cancellationDate] with `cancellationDate.orElse(null)`. */ + fun cancellationDate(cancellationDate: Optional) = + cancellationDate(cancellationDate.getOrNull()) + + /** + * Sets [Builder.cancellationDate] to an arbitrary JSON value. + * + * You should usually call [Builder.cancellationDate] with a well-typed [OffsetDateTime] + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. + */ + fun cancellationDate(cancellationDate: JsonField) = apply { + body.cancellationDate(cancellationDate) + } + + fun additionalBodyProperties(additionalBodyProperties: Map) = apply { + body.additionalProperties(additionalBodyProperties) + } + + fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { + body.putAdditionalProperty(key, value) + } + + fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = + apply { + body.putAllAdditionalProperties(additionalBodyProperties) + } + + fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + body.removeAllAdditionalProperties(keys) + } + + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) + } + + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } + + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } + + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) + } + + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } + + /** + * Returns an immutable instance of [SubscriptionCancelParams]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .subscriptionId() + * .cancelOption() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): SubscriptionCancelParams = + SubscriptionCancelParams( + checkRequired("subscriptionId", subscriptionId), + body.build(), + additionalHeaders.build(), + additionalQueryParams.build(), + ) + } + @JvmSynthetic internal fun _body(): Body = body fun _pathParam(index: Int): String = @@ -153,23 +396,27 @@ private constructor( override fun _queryParams(): QueryParams = additionalQueryParams - @NoAutoDetect class Body - @JsonCreator private constructor( - @JsonProperty("cancel_option") - @ExcludeMissing - private val cancelOption: JsonField = JsonMissing.of(), - @JsonProperty("allow_invoice_credit_or_void") - @ExcludeMissing - private val allowInvoiceCreditOrVoid: JsonField = JsonMissing.of(), - @JsonProperty("cancellation_date") - @ExcludeMissing - private val cancellationDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cancelOption: JsonField, + private val allowInvoiceCreditOrVoid: JsonField, + private val cancellationDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cancel_option") + @ExcludeMissing + cancelOption: JsonField = JsonMissing.of(), + @JsonProperty("allow_invoice_credit_or_void") + @ExcludeMissing + allowInvoiceCreditOrVoid: JsonField = JsonMissing.of(), + @JsonProperty("cancellation_date") + @ExcludeMissing + cancellationDate: JsonField = JsonMissing.of(), + ) : this(cancelOption, allowInvoiceCreditOrVoid, cancellationDate, mutableMapOf()) + /** * Determines the timing of subscription cancellation * @@ -231,22 +478,15 @@ private constructor( @ExcludeMissing fun _cancellationDate(): JsonField = cancellationDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - cancelOption() - allowInvoiceCreditOrVoid() - cancellationDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -387,10 +627,23 @@ private constructor( checkRequired("cancelOption", cancelOption), allowInvoiceCreditOrVoid, cancellationDate, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Body = apply { + if (validated) { + return@apply + } + + cancelOption() + allowInvoiceCreditOrVoid() + cancellationDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -409,252 +662,6 @@ private constructor( "Body{cancelOption=$cancelOption, allowInvoiceCreditOrVoid=$allowInvoiceCreditOrVoid, cancellationDate=$cancellationDate, additionalProperties=$additionalProperties}" } - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of [SubscriptionCancelParams]. - * - * The following fields are required: - * ```java - * .subscriptionId() - * .cancelOption() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [SubscriptionCancelParams]. */ - @NoAutoDetect - class Builder internal constructor() { - - private var subscriptionId: String? = null - private var body: Body.Builder = Body.builder() - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() - - @JvmSynthetic - internal fun from(subscriptionCancelParams: SubscriptionCancelParams) = apply { - subscriptionId = subscriptionCancelParams.subscriptionId - body = subscriptionCancelParams.body.toBuilder() - additionalHeaders = subscriptionCancelParams.additionalHeaders.toBuilder() - additionalQueryParams = subscriptionCancelParams.additionalQueryParams.toBuilder() - } - - fun subscriptionId(subscriptionId: String) = apply { this.subscriptionId = subscriptionId } - - /** Determines the timing of subscription cancellation */ - fun cancelOption(cancelOption: CancelOption) = apply { body.cancelOption(cancelOption) } - - /** - * Sets [Builder.cancelOption] to an arbitrary JSON value. - * - * You should usually call [Builder.cancelOption] with a well-typed [CancelOption] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun cancelOption(cancelOption: JsonField) = apply { - body.cancelOption(cancelOption) - } - - /** - * If false, this request will fail if it would void an issued invoice or create a credit - * note. Consider using this as a safety mechanism if you do not expect existing invoices to - * be changed. - */ - fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Boolean?) = apply { - body.allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid) - } - - /** - * Alias for [Builder.allowInvoiceCreditOrVoid]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Boolean) = - allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid as Boolean?) - - /** - * Alias for calling [Builder.allowInvoiceCreditOrVoid] with - * `allowInvoiceCreditOrVoid.orElse(null)`. - */ - fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Optional) = - allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid.getOrNull()) - - /** - * Sets [Builder.allowInvoiceCreditOrVoid] to an arbitrary JSON value. - * - * You should usually call [Builder.allowInvoiceCreditOrVoid] with a well-typed [Boolean] - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: JsonField) = apply { - body.allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid) - } - - /** - * The date that the cancellation should take effect. This parameter can only be passed if - * the `cancel_option` is `requested_date`. - */ - fun cancellationDate(cancellationDate: OffsetDateTime?) = apply { - body.cancellationDate(cancellationDate) - } - - /** Alias for calling [Builder.cancellationDate] with `cancellationDate.orElse(null)`. */ - fun cancellationDate(cancellationDate: Optional) = - cancellationDate(cancellationDate.getOrNull()) - - /** - * Sets [Builder.cancellationDate] to an arbitrary JSON value. - * - * You should usually call [Builder.cancellationDate] with a well-typed [OffsetDateTime] - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun cancellationDate(cancellationDate: JsonField) = apply { - body.cancellationDate(cancellationDate) - } - - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { - body.additionalProperties(additionalBodyProperties) - } - - fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - body.putAdditionalProperty(key, value) - } - - fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = - apply { - body.putAllAdditionalProperties(additionalBodyProperties) - } - - fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } - - fun removeAllAdditionalBodyProperties(keys: Set) = apply { - body.removeAllAdditionalProperties(keys) - } - - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } - - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } - - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } - - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } - - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } - - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } - - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } - - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } - - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } - - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } - - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } - - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } - - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } - - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } - - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } - - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) - } - - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } - - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } - - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) - } - - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } - - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } - - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) - } - - /** - * Returns an immutable instance of [SubscriptionCancelParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .subscriptionId() - * .cancelOption() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): SubscriptionCancelParams = - SubscriptionCancelParams( - checkRequired("subscriptionId", subscriptionId), - body.build(), - additionalHeaders.build(), - additionalQueryParams.build(), - ) - } - /** Determines the timing of subscription cancellation */ class CancelOption @JsonCreator private constructor(private val value: JsonField) : Enum { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCancelResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCancelResponse.kt index 37fd9655..8c0bea1b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCancelResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCancelResponse.kt @@ -20,98 +20,142 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class SubscriptionCancelResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("active_plan_phase_order") - @ExcludeMissing - private val activePlanPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_intervals") - @ExcludeMissing - private val adjustmentIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_anchor_configuration") - @ExcludeMissing - private val billingCycleAnchorConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("default_invoice_memo") - @ExcludeMissing - private val defaultInvoiceMemo: JsonField = JsonMissing.of(), - @JsonProperty("discount_intervals") - @ExcludeMissing - private val discountIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_schedule") - @ExcludeMissing - private val fixedFeeQuantitySchedule: JsonField> = - JsonMissing.of(), - @JsonProperty("invoicing_threshold") - @ExcludeMissing - private val invoicingThreshold: JsonField = JsonMissing.of(), - @JsonProperty("maximum_intervals") - @ExcludeMissing - private val maximumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum_intervals") - @ExcludeMissing - private val minimumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("plan") @ExcludeMissing private val plan: JsonField = JsonMissing.of(), - @JsonProperty("price_intervals") - @ExcludeMissing - private val priceIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("redeemed_coupon") - @ExcludeMissing - private val redeemedCoupon: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("trial_info") - @ExcludeMissing - private val trialInfo: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val activePlanPhaseOrder: JsonField, + private val adjustmentIntervals: JsonField>, + private val autoCollection: JsonField, + private val billingCycleAnchorConfiguration: JsonField, + private val billingCycleDay: JsonField, + private val createdAt: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val customer: JsonField, + private val defaultInvoiceMemo: JsonField, + private val discountIntervals: JsonField>, + private val endDate: JsonField, + private val fixedFeeQuantitySchedule: JsonField>, + private val invoicingThreshold: JsonField, + private val maximumIntervals: JsonField>, + private val metadata: JsonField, + private val minimumIntervals: JsonField>, + private val netTerms: JsonField, + private val plan: JsonField, + private val priceIntervals: JsonField>, + private val redeemedCoupon: JsonField, + private val startDate: JsonField, + private val status: JsonField, + private val trialInfo: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("active_plan_phase_order") + @ExcludeMissing + activePlanPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_intervals") + @ExcludeMissing + adjustmentIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_anchor_configuration") + @ExcludeMissing + billingCycleAnchorConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("customer") @ExcludeMissing customer: JsonField = JsonMissing.of(), + @JsonProperty("default_invoice_memo") + @ExcludeMissing + defaultInvoiceMemo: JsonField = JsonMissing.of(), + @JsonProperty("discount_intervals") + @ExcludeMissing + discountIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_schedule") + @ExcludeMissing + fixedFeeQuantitySchedule: JsonField> = JsonMissing.of(), + @JsonProperty("invoicing_threshold") + @ExcludeMissing + invoicingThreshold: JsonField = JsonMissing.of(), + @JsonProperty("maximum_intervals") + @ExcludeMissing + maximumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("metadata") @ExcludeMissing metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum_intervals") + @ExcludeMissing + minimumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("plan") @ExcludeMissing plan: JsonField = JsonMissing.of(), + @JsonProperty("price_intervals") + @ExcludeMissing + priceIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("redeemed_coupon") + @ExcludeMissing + redeemedCoupon: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + @JsonProperty("trial_info") + @ExcludeMissing + trialInfo: JsonField = JsonMissing.of(), + ) : this( + id, + activePlanPhaseOrder, + adjustmentIntervals, + autoCollection, + billingCycleAnchorConfiguration, + billingCycleDay, + createdAt, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + customer, + defaultInvoiceMemo, + discountIntervals, + endDate, + fixedFeeQuantitySchedule, + invoicingThreshold, + maximumIntervals, + metadata, + minimumIntervals, + netTerms, + plan, + priceIntervals, + redeemedCoupon, + startDate, + status, + trialInfo, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -566,44 +610,15 @@ private constructor( */ @JsonProperty("trial_info") @ExcludeMissing fun _trialInfo(): JsonField = trialInfo + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): SubscriptionCancelResponse = apply { - if (validated) { - return@apply - } - - id() - activePlanPhaseOrder() - adjustmentIntervals().forEach { it.validate() } - autoCollection() - billingCycleAnchorConfiguration().validate() - billingCycleDay() - createdAt() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - customer().validate() - defaultInvoiceMemo() - discountIntervals().forEach { it.validate() } - endDate() - fixedFeeQuantitySchedule().forEach { it.validate() } - invoicingThreshold() - maximumIntervals().forEach { it.validate() } - metadata().validate() - minimumIntervals().forEach { it.validate() } - netTerms() - plan().validate() - priceIntervals().forEach { it.validate() } - redeemedCoupon().ifPresent { it.validate() } - startDate() - status() - trialInfo().validate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1330,31 +1345,72 @@ private constructor( checkRequired("startDate", startDate), checkRequired("status", status), checkRequired("trialInfo", trialInfo), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): SubscriptionCancelResponse = apply { + if (validated) { + return@apply + } + + id() + activePlanPhaseOrder() + adjustmentIntervals().forEach { it.validate() } + autoCollection() + billingCycleAnchorConfiguration().validate() + billingCycleDay() + createdAt() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + customer().validate() + defaultInvoiceMemo() + discountIntervals().forEach { it.validate() } + endDate() + fixedFeeQuantitySchedule().forEach { it.validate() } + invoicingThreshold() + maximumIntervals().forEach { it.validate() } + metadata().validate() + minimumIntervals().forEach { it.validate() } + netTerms() + plan().validate() + priceIntervals().forEach { it.validate() } + redeemedCoupon().ifPresent { it.validate() } + startDate() + status() + trialInfo().validate() + validated = true + } + class AdjustmentInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment") - @ExcludeMissing - private val adjustment: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustment: JsonField, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment") + @ExcludeMissing + adjustment: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(id, adjustment, appliesToPriceIntervalIds, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -1437,24 +1493,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AdjustmentInterval = apply { - if (validated) { - return@apply - } - - id() - adjustment().validate() - appliesToPriceIntervalIds() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1658,10 +1705,25 @@ private constructor( }, checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AdjustmentInterval = apply { + if (validated) { + return@apply + } + + id() + adjustment().validate() + appliesToPriceIntervalIds() + endDate() + startDate() + validated = true + } + @JsonDeserialize(using = Adjustment.Deserializer::class) @JsonSerialize(using = Adjustment.Serializer::class) class Adjustment @@ -1950,35 +2012,50 @@ private constructor( } } - @NoAutoDetect class PlanPhaseUsageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + usageDiscount, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2105,26 +2182,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseUsageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2362,10 +2428,27 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseUsageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + usageDiscount() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2486,35 +2569,50 @@ private constructor( "PlanPhaseUsageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, usageDiscount=$usageDiscount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseAmountDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amountDiscount, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2641,26 +2739,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseAmountDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amountDiscount() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2898,10 +2985,27 @@ private constructor( checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseAmountDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amountDiscount() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3022,35 +3126,50 @@ private constructor( "PlanPhaseAmountDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhasePercentageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val percentageDiscount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + percentageDiscount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3178,26 +3297,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhasePercentageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - percentageDiscount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3437,10 +3545,27 @@ private constructor( checkRequired("percentageDiscount", percentageDiscount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhasePercentageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + percentageDiscount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3561,38 +3686,55 @@ private constructor( "PlanPhasePercentageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, percentageDiscount=$percentageDiscount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMinimumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val itemId: JsonField, + private val minimumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + itemId, + minimumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3736,27 +3878,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMinimumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - itemId() - minimumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4010,10 +4140,28 @@ private constructor( checkRequired("minimumAmount", minimumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMinimumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + itemId() + minimumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4134,35 +4282,50 @@ private constructor( "PlanPhaseMinimumAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, itemId=$itemId, minimumAmount=$minimumAmount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMaximumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val maximumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + maximumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4289,26 +4452,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMaximumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - maximumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4545,10 +4697,27 @@ private constructor( checkRequired("maximumAmount", maximumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMaximumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + maximumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4688,19 +4857,21 @@ private constructor( "AdjustmentInterval{id=$id, adjustment=$adjustment, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleAnchorConfiguration - @JsonCreator private constructor( - @JsonProperty("day") @ExcludeMissing private val day: JsonField = JsonMissing.of(), - @JsonProperty("month") - @ExcludeMissing - private val month: JsonField = JsonMissing.of(), - @JsonProperty("year") @ExcludeMissing private val year: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val day: JsonField, + private val month: JsonField, + private val year: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("day") @ExcludeMissing day: JsonField = JsonMissing.of(), + @JsonProperty("month") @ExcludeMissing month: JsonField = JsonMissing.of(), + @JsonProperty("year") @ExcludeMissing year: JsonField = JsonMissing.of(), + ) : this(day, month, year, mutableMapOf()) + /** * The day of the month on which the billing cycle is anchored. If the maximum number of * days in a month is greater than this value, the last day of the month is the billing @@ -4751,22 +4922,15 @@ private constructor( */ @JsonProperty("year") @ExcludeMissing fun _year(): JsonField = year + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleAnchorConfiguration = apply { - if (validated) { - return@apply - } - - day() - month() - year() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4905,10 +5069,23 @@ private constructor( checkRequired("day", day), month, year, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleAnchorConfiguration = apply { + if (validated) { + return@apply + } + + day() + month() + year() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5104,32 +5281,47 @@ private constructor( } } - @NoAutoDetect class AmountDiscountInterval - @JsonCreator private constructor( - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + amountDiscount, + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + mutableMapOf(), + ) + /** * Only available if discount_type is `amount`. * @@ -5243,25 +5435,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AmountDiscountInterval = apply { - if (validated) { - return@apply - } - - amountDiscount() - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5475,10 +5657,26 @@ private constructor( checkRequired("discountType", discountType), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AmountDiscountInterval = apply { + if (validated) { + return@apply + } + + amountDiscount() + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -5597,32 +5795,47 @@ private constructor( "AmountDiscountInterval{amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PercentageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val percentageDiscount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + percentageDiscount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -5736,25 +5949,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PercentageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - percentageDiscount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5972,10 +6175,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("percentageDiscount", percentageDiscount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PercentageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + percentageDiscount() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6094,32 +6313,47 @@ private constructor( "PercentageDiscountInterval{appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, percentageDiscount=$percentageDiscount, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class UsageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + usageDiscount, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -6234,25 +6468,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UsageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6468,10 +6692,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("startDate", startDate), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UsageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + usageDiscount() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6591,26 +6831,29 @@ private constructor( } } - @NoAutoDetect class FixedFeeQuantitySchedule - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(endDate, priceId, quantity, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -6668,23 +6911,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantitySchedule = apply { - if (validated) { - return@apply - } - - endDate() - priceId() - quantity() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6811,10 +7046,24 @@ private constructor( checkRequired("priceId", priceId), checkRequired("quantity", quantity), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantitySchedule = apply { + if (validated) { + return@apply + } + + endDate() + priceId() + quantity() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6833,29 +7082,42 @@ private constructor( "FixedFeeQuantitySchedule{endDate=$endDate, priceId=$priceId, quantity=$quantity, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MaximumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val maximumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + maximumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this maximum interval applies to. * @@ -6948,24 +7210,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MaximumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - maximumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7153,10 +7406,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("maximumAmount", maximumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MaximumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + maximumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7180,27 +7448,20 @@ private constructor( * dictionary. Individual keys can be removed by setting the value to `null`, and the entire * metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7244,7 +7505,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -7264,29 +7535,42 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class MinimumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val minimumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + minimumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this minimum interval applies to. * @@ -7379,24 +7663,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MinimumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - minimumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7584,10 +7859,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("minimumAmount", minimumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MinimumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + minimumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7610,43 +7900,62 @@ private constructor( * The Price Interval resource represents a period of time for which a price will bill on a * subscription. A subscription’s price intervals define its billing behavior. */ - @NoAutoDetect class PriceInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("filter") - @ExcludeMissing - private val filter: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_transitions") - @ExcludeMissing - private val fixedFeeQuantityTransitions: JsonField> = - JsonMissing.of(), - @JsonProperty("price") - @ExcludeMissing - private val price: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_customer_ids") - @ExcludeMissing - private val usageCustomerIds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billingCycleDay: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val endDate: JsonField, + private val filter: JsonField, + private val fixedFeeQuantityTransitions: JsonField>, + private val price: JsonField, + private val startDate: JsonField, + private val usageCustomerIds: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("filter") @ExcludeMissing filter: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_transitions") + @ExcludeMissing + fixedFeeQuantityTransitions: JsonField> = + JsonMissing.of(), + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_customer_ids") + @ExcludeMissing + usageCustomerIds: JsonField> = JsonMissing.of(), + ) : this( + id, + billingCycleDay, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + endDate, + filter, + fixedFeeQuantityTransitions, + price, + startDate, + usageCustomerIds, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -7844,29 +8153,15 @@ private constructor( @ExcludeMissing fun _usageCustomerIds(): JsonField> = usageCustomerIds + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PriceInterval = apply { - if (validated) { - return@apply - } - - id() - billingCycleDay() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - endDate() - filter() - fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } - price().validate() - startDate() - usageCustomerIds() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8351,27 +8646,51 @@ private constructor( checkRequired("price", price), checkRequired("startDate", startDate), checkRequired("usageCustomerIds", usageCustomerIds).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): PriceInterval = apply { + if (validated) { + return@apply + } + + id() + billingCycleDay() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + endDate() + filter() + fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } + price().validate() + startDate() + usageCustomerIds() + validated = true + } + class FixedFeeQuantityTransition - @JsonCreator private constructor( - @JsonProperty("effective_date") - @ExcludeMissing - private val effectiveDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val effectiveDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("effective_date") + @ExcludeMissing + effectiveDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") + @ExcludeMissing + priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + ) : this(effectiveDate, priceId, quantity, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -8418,22 +8737,15 @@ private constructor( */ @JsonProperty("quantity") @ExcludeMissing fun _quantity(): JsonField = quantity + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantityTransition = apply { - if (validated) { - return@apply - } - - effectiveDate() - priceId() - quantity() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8547,10 +8859,23 @@ private constructor( checkRequired("effectiveDate", effectiveDate), checkRequired("priceId", priceId), checkRequired("quantity", quantity), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantityTransition = apply { + if (validated) { + return@apply + } + + effectiveDate() + priceId() + quantity() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8587,23 +8912,27 @@ private constructor( "PriceInterval{id=$id, billingCycleDay=$billingCycleDay, currentBillingPeriodEndDate=$currentBillingPeriodEndDate, currentBillingPeriodStartDate=$currentBillingPeriodStartDate, endDate=$endDate, filter=$filter, fixedFeeQuantityTransitions=$fixedFeeQuantityTransitions, price=$price, startDate=$startDate, usageCustomerIds=$usageCustomerIds, additionalProperties=$additionalProperties}" } - @NoAutoDetect class RedeemedCoupon - @JsonCreator private constructor( - @JsonProperty("coupon_id") - @ExcludeMissing - private val couponId: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val couponId: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("coupon_id") + @ExcludeMissing + couponId: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(couponId, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -8648,22 +8977,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): RedeemedCoupon = apply { - if (validated) { - return@apply - } - - couponId() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8774,10 +9096,23 @@ private constructor( checkRequired("couponId", couponId), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): RedeemedCoupon = apply { + if (validated) { + return@apply + } + + couponId() + endDate() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8899,17 +9234,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TrialInfo - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of() + ) : this(endDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -8926,20 +9263,15 @@ private constructor( @ExcludeMissing fun _endDate(): JsonField = endDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TrialInfo = apply { - if (validated) { - return@apply - } - - endDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9014,7 +9346,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): TrialInfo = - TrialInfo(checkRequired("endDate", endDate), additionalProperties.toImmutable()) + TrialInfo(checkRequired("endDate", endDate), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TrialInfo = apply { + if (validated) { + return@apply + } + + endDate() + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCreateParams.kt index b0030ab7..e4436102 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCreateParams.kt @@ -20,17 +20,16 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -780,2706 +779,2775 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body + fun toBuilder() = Builder().from(this) - override fun _headers(): Headers = additionalHeaders + companion object { - override fun _queryParams(): QueryParams = additionalQueryParams + @JvmStatic fun none(): SubscriptionCreateParams = builder().build() - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("add_adjustments") - @ExcludeMissing - private val addAdjustments: JsonField> = JsonMissing.of(), - @JsonProperty("add_prices") - @ExcludeMissing - private val addPrices: JsonField> = JsonMissing.of(), - @JsonProperty("align_billing_with_subscription_start_date") - @ExcludeMissing - private val alignBillingWithSubscriptionStartDate: JsonField = JsonMissing.of(), - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("aws_region") - @ExcludeMissing - private val awsRegion: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_anchor_configuration") - @ExcludeMissing - private val billingCycleAnchorConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("coupon_redemption_code") - @ExcludeMissing - private val couponRedemptionCode: JsonField = JsonMissing.of(), - @JsonProperty("credits_overage_rate") - @ExcludeMissing - private val creditsOverageRate: JsonField = JsonMissing.of(), - @JsonProperty("customer_id") - @ExcludeMissing - private val customerId: JsonField = JsonMissing.of(), - @JsonProperty("default_invoice_memo") - @ExcludeMissing - private val defaultInvoiceMemo: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("external_customer_id") - @ExcludeMissing - private val externalCustomerId: JsonField = JsonMissing.of(), - @JsonProperty("external_marketplace") - @ExcludeMissing - private val externalMarketplace: JsonField = JsonMissing.of(), - @JsonProperty("external_marketplace_reporting_id") - @ExcludeMissing - private val externalMarketplaceReportingId: JsonField = JsonMissing.of(), - @JsonProperty("external_plan_id") - @ExcludeMissing - private val externalPlanId: JsonField = JsonMissing.of(), - @JsonProperty("filter") - @ExcludeMissing - private val filter: JsonField = JsonMissing.of(), - @JsonProperty("initial_phase_order") - @ExcludeMissing - private val initialPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_threshold") - @ExcludeMissing - private val invoicingThreshold: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("per_credit_overage_amount") - @ExcludeMissing - private val perCreditOverageAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_id") - @ExcludeMissing - private val planId: JsonField = JsonMissing.of(), - @JsonProperty("plan_version_number") - @ExcludeMissing - private val planVersionNumber: JsonField = JsonMissing.of(), - @JsonProperty("price_overrides") - @ExcludeMissing - private val priceOverrides: JsonField> = JsonMissing.of(), - @JsonProperty("remove_adjustments") - @ExcludeMissing - private val removeAdjustments: JsonField> = JsonMissing.of(), - @JsonProperty("remove_prices") - @ExcludeMissing - private val removePrices: JsonField> = JsonMissing.of(), - @JsonProperty("replace_adjustments") - @ExcludeMissing - private val replaceAdjustments: JsonField> = JsonMissing.of(), - @JsonProperty("replace_prices") - @ExcludeMissing - private val replacePrices: JsonField> = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("trial_duration_days") - @ExcludeMissing - private val trialDurationDays: JsonField = JsonMissing.of(), - @JsonProperty("usage_customer_ids") - @ExcludeMissing - private val usageCustomerIds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { + /** Returns a mutable builder for constructing an instance of [SubscriptionCreateParams]. */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [SubscriptionCreateParams]. */ + class Builder internal constructor() { + + private var body: Body.Builder = Body.builder() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from(subscriptionCreateParams: SubscriptionCreateParams) = apply { + body = subscriptionCreateParams.body.toBuilder() + additionalHeaders = subscriptionCreateParams.additionalHeaders.toBuilder() + additionalQueryParams = subscriptionCreateParams.additionalQueryParams.toBuilder() + } /** * Additional adjustments to be added to the subscription. (Only available for accounts that * have migrated off of legacy subscription overrides) - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). */ - fun addAdjustments(): Optional> = - Optional.ofNullable(addAdjustments.getNullable("add_adjustments")) + fun addAdjustments(addAdjustments: List?) = apply { + body.addAdjustments(addAdjustments) + } - /** - * Additional prices to be added to the subscription. (Only available for accounts that have - * migrated off of legacy subscription overrides) - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun addPrices(): Optional> = - Optional.ofNullable(addPrices.getNullable("add_prices")) + /** Alias for calling [Builder.addAdjustments] with `addAdjustments.orElse(null)`. */ + fun addAdjustments(addAdjustments: Optional>) = + addAdjustments(addAdjustments.getOrNull()) /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Sets [Builder.addAdjustments] to an arbitrary JSON value. + * + * You should usually call [Builder.addAdjustments] with a well-typed `List` + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. */ - fun alignBillingWithSubscriptionStartDate(): Optional = - Optional.ofNullable( - alignBillingWithSubscriptionStartDate.getNullable( - "align_billing_with_subscription_start_date" - ) - ) + fun addAdjustments(addAdjustments: JsonField>) = apply { + body.addAdjustments(addAdjustments) + } /** - * Determines whether issued invoices for this subscription will automatically be charged - * with the saved payment method on the due date. If not specified, this defaults to the - * behavior configured for this customer. + * Adds a single [AddAdjustment] to [addAdjustments]. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * @throws IllegalStateException if the field was previously set to a non-list. */ - fun autoCollection(): Optional = - Optional.ofNullable(autoCollection.getNullable("auto_collection")) + fun addAddAdjustment(addAdjustment: AddAdjustment) = apply { + body.addAddAdjustment(addAdjustment) + } /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Additional prices to be added to the subscription. (Only available for accounts that have + * migrated off of legacy subscription overrides) */ - @Deprecated("deprecated") - fun awsRegion(): Optional = Optional.ofNullable(awsRegion.getNullable("aws_region")) + fun addPrices(addPrices: List?) = apply { body.addPrices(addPrices) } - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun billingCycleAnchorConfiguration(): Optional = - Optional.ofNullable( - billingCycleAnchorConfiguration.getNullable("billing_cycle_anchor_configuration") - ) + /** Alias for calling [Builder.addPrices] with `addPrices.orElse(null)`. */ + fun addPrices(addPrices: Optional>) = addPrices(addPrices.getOrNull()) /** - * Redemption code to be used for this subscription. If the coupon cannot be found by its - * redemption code, or cannot be redeemed, an error response will be returned and the - * subscription creation or plan change will not be scheduled. + * Sets [Builder.addPrices] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.addPrices] with a well-typed `List` value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun couponRedemptionCode(): Optional = - Optional.ofNullable(couponRedemptionCode.getNullable("coupon_redemption_code")) + fun addPrices(addPrices: JsonField>) = apply { body.addPrices(addPrices) } /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Adds a single [AddPrice] to [addPrices]. + * + * @throws IllegalStateException if the field was previously set to a non-list. */ - @Deprecated("deprecated") - fun creditsOverageRate(): Optional = - Optional.ofNullable(creditsOverageRate.getNullable("credits_overage_rate")) + fun addAddPrice(addPrice: AddPrice) = apply { body.addAddPrice(addPrice) } - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun customerId(): Optional = - Optional.ofNullable(customerId.getNullable("customer_id")) + fun alignBillingWithSubscriptionStartDate(alignBillingWithSubscriptionStartDate: Boolean) = + apply { + body.alignBillingWithSubscriptionStartDate(alignBillingWithSubscriptionStartDate) + } /** - * Determines the default memo on this subscription's invoices. Note that if this is not - * provided, it is determined by the plan configuration. + * Sets [Builder.alignBillingWithSubscriptionStartDate] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.alignBillingWithSubscriptionStartDate] with a well-typed + * [Boolean] value instead. This method is primarily for setting the field to an + * undocumented or not yet supported value. */ - fun defaultInvoiceMemo(): Optional = - Optional.ofNullable(defaultInvoiceMemo.getNullable("default_invoice_memo")) + fun alignBillingWithSubscriptionStartDate( + alignBillingWithSubscriptionStartDate: JsonField + ) = apply { + body.alignBillingWithSubscriptionStartDate(alignBillingWithSubscriptionStartDate) + } /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Determines whether issued invoices for this subscription will automatically be charged + * with the saved payment method on the due date. If not specified, this defaults to the + * behavior configured for this customer. */ - fun endDate(): Optional = - Optional.ofNullable(endDate.getNullable("end_date")) + fun autoCollection(autoCollection: Boolean?) = apply { body.autoCollection(autoCollection) } /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Alias for [Builder.autoCollection]. + * + * This unboxed primitive overload exists for backwards compatibility. */ - fun externalCustomerId(): Optional = - Optional.ofNullable(externalCustomerId.getNullable("external_customer_id")) + fun autoCollection(autoCollection: Boolean) = autoCollection(autoCollection as Boolean?) + + /** Alias for calling [Builder.autoCollection] with `autoCollection.orElse(null)`. */ + fun autoCollection(autoCollection: Optional) = + autoCollection(autoCollection.getOrNull()) /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Sets [Builder.autoCollection] to an arbitrary JSON value. + * + * You should usually call [Builder.autoCollection] with a well-typed [Boolean] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ + fun autoCollection(autoCollection: JsonField) = apply { + body.autoCollection(autoCollection) + } + @Deprecated("deprecated") - fun externalMarketplace(): Optional = - Optional.ofNullable(externalMarketplace.getNullable("external_marketplace")) + fun awsRegion(awsRegion: String?) = apply { body.awsRegion(awsRegion) } - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ + /** Alias for calling [Builder.awsRegion] with `awsRegion.orElse(null)`. */ @Deprecated("deprecated") - fun externalMarketplaceReportingId(): Optional = - Optional.ofNullable( - externalMarketplaceReportingId.getNullable("external_marketplace_reporting_id") - ) + fun awsRegion(awsRegion: Optional) = awsRegion(awsRegion.getOrNull()) /** - * The external_plan_id of the plan that the given subscription should be switched to. Note - * that either this property or `plan_id` must be specified. + * Sets [Builder.awsRegion] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.awsRegion] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. */ - fun externalPlanId(): Optional = - Optional.ofNullable(externalPlanId.getNullable("external_plan_id")) + @Deprecated("deprecated") + fun awsRegion(awsRegion: JsonField) = apply { body.awsRegion(awsRegion) } + + fun billingCycleAnchorConfiguration( + billingCycleAnchorConfiguration: BillingCycleAnchorConfiguration? + ) = apply { body.billingCycleAnchorConfiguration(billingCycleAnchorConfiguration) } /** - * An additional filter to apply to usage queries. This filter must be expressed as a - * boolean [computed property](/extensibility/advanced-metrics#computed-properties). If - * null, usage queries will not include any additional filter. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Alias for calling [Builder.billingCycleAnchorConfiguration] with + * `billingCycleAnchorConfiguration.orElse(null)`. */ - fun filter(): Optional = Optional.ofNullable(filter.getNullable("filter")) + fun billingCycleAnchorConfiguration( + billingCycleAnchorConfiguration: Optional + ) = billingCycleAnchorConfiguration(billingCycleAnchorConfiguration.getOrNull()) /** - * The phase of the plan to start with + * Sets [Builder.billingCycleAnchorConfiguration] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.billingCycleAnchorConfiguration] with a well-typed + * [BillingCycleAnchorConfiguration] value instead. This method is primarily for setting the + * field to an undocumented or not yet supported value. */ - fun initialPhaseOrder(): Optional = - Optional.ofNullable(initialPhaseOrder.getNullable("initial_phase_order")) + fun billingCycleAnchorConfiguration( + billingCycleAnchorConfiguration: JsonField + ) = apply { body.billingCycleAnchorConfiguration(billingCycleAnchorConfiguration) } /** - * When this subscription's accrued usage reaches this threshold, an invoice will be issued - * for the subscription. If not specified, invoices will only be issued at the end of the - * billing period. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Redemption code to be used for this subscription. If the coupon cannot be found by its + * redemption code, or cannot be redeemed, an error response will be returned and the + * subscription creation or plan change will not be scheduled. */ - fun invoicingThreshold(): Optional = - Optional.ofNullable(invoicingThreshold.getNullable("invoicing_threshold")) + fun couponRedemptionCode(couponRedemptionCode: String?) = apply { + body.couponRedemptionCode(couponRedemptionCode) + } /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Alias for calling [Builder.couponRedemptionCode] with + * `couponRedemptionCode.orElse(null)`. */ - fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) + fun couponRedemptionCode(couponRedemptionCode: Optional) = + couponRedemptionCode(couponRedemptionCode.getOrNull()) /** - * The net terms determines the difference between the invoice date and the issue date for - * the invoice. If you intend the invoice to be due on issue, set this to 0. If not - * provided, this defaults to the value specified in the plan. + * Sets [Builder.couponRedemptionCode] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.couponRedemptionCode] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun netTerms(): Optional = Optional.ofNullable(netTerms.getNullable("net_terms")) + fun couponRedemptionCode(couponRedemptionCode: JsonField) = apply { + body.couponRedemptionCode(couponRedemptionCode) + } - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ @Deprecated("deprecated") - fun perCreditOverageAmount(): Optional = - Optional.ofNullable(perCreditOverageAmount.getNullable("per_credit_overage_amount")) + fun creditsOverageRate(creditsOverageRate: Double?) = apply { + body.creditsOverageRate(creditsOverageRate) + } /** - * The plan that the given subscription should be switched to. Note that either this - * property or `external_plan_id` must be specified. + * Alias for [Builder.creditsOverageRate]. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * This unboxed primitive overload exists for backwards compatibility. */ - fun planId(): Optional = Optional.ofNullable(planId.getNullable("plan_id")) + @Deprecated("deprecated") + fun creditsOverageRate(creditsOverageRate: Double) = + creditsOverageRate(creditsOverageRate as Double?) /** - * Specifies which version of the plan to subscribe to. If null, the default version will be - * used. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Alias for calling [Builder.creditsOverageRate] with `creditsOverageRate.orElse(null)`. */ - fun planVersionNumber(): Optional = - Optional.ofNullable(planVersionNumber.getNullable("plan_version_number")) + @Deprecated("deprecated") + fun creditsOverageRate(creditsOverageRate: Optional) = + creditsOverageRate(creditsOverageRate.getOrNull()) /** - * Optionally provide a list of overrides for prices on the plan + * Sets [Builder.creditsOverageRate] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.creditsOverageRate] with a well-typed [Double] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ @Deprecated("deprecated") - fun priceOverrides(): Optional> = - Optional.ofNullable(priceOverrides.getNullable("price_overrides")) + fun creditsOverageRate(creditsOverageRate: JsonField) = apply { + body.creditsOverageRate(creditsOverageRate) + } + + fun customerId(customerId: String?) = apply { body.customerId(customerId) } + + /** Alias for calling [Builder.customerId] with `customerId.orElse(null)`. */ + fun customerId(customerId: Optional) = customerId(customerId.getOrNull()) /** - * Plan adjustments to be removed from the subscription. (Only available for accounts that - * have migrated off of legacy subscription overrides) + * Sets [Builder.customerId] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.customerId] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. */ - fun removeAdjustments(): Optional> = - Optional.ofNullable(removeAdjustments.getNullable("remove_adjustments")) + fun customerId(customerId: JsonField) = apply { body.customerId(customerId) } /** - * Plan prices to be removed from the subscription. (Only available for accounts that have - * migrated off of legacy subscription overrides) - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Determines the default memo on this subscription's invoices. Note that if this is not + * provided, it is determined by the plan configuration. */ - fun removePrices(): Optional> = - Optional.ofNullable(removePrices.getNullable("remove_prices")) + fun defaultInvoiceMemo(defaultInvoiceMemo: String?) = apply { + body.defaultInvoiceMemo(defaultInvoiceMemo) + } /** - * Plan adjustments to be replaced with additional adjustments on the subscription. (Only - * available for accounts that have migrated off of legacy subscription overrides) - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Alias for calling [Builder.defaultInvoiceMemo] with `defaultInvoiceMemo.orElse(null)`. */ - fun replaceAdjustments(): Optional> = - Optional.ofNullable(replaceAdjustments.getNullable("replace_adjustments")) + fun defaultInvoiceMemo(defaultInvoiceMemo: Optional) = + defaultInvoiceMemo(defaultInvoiceMemo.getOrNull()) /** - * Plan prices to be replaced with additional prices on the subscription. (Only available - * for accounts that have migrated off of legacy subscription overrides) + * Sets [Builder.defaultInvoiceMemo] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.defaultInvoiceMemo] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun replacePrices(): Optional> = - Optional.ofNullable(replacePrices.getNullable("replace_prices")) + fun defaultInvoiceMemo(defaultInvoiceMemo: JsonField) = apply { + body.defaultInvoiceMemo(defaultInvoiceMemo) + } - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun startDate(): Optional = - Optional.ofNullable(startDate.getNullable("start_date")) + fun endDate(endDate: OffsetDateTime?) = apply { body.endDate(endDate) } + + /** Alias for calling [Builder.endDate] with `endDate.orElse(null)`. */ + fun endDate(endDate: Optional) = endDate(endDate.getOrNull()) /** - * The duration of the trial period in days. If not provided, this defaults to the value - * specified in the plan. If `0` is provided, the trial on the plan will be skipped. + * Sets [Builder.endDate] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.endDate] with a well-typed [OffsetDateTime] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun trialDurationDays(): Optional = - Optional.ofNullable(trialDurationDays.getNullable("trial_duration_days")) + fun endDate(endDate: JsonField) = apply { body.endDate(endDate) } + + fun externalCustomerId(externalCustomerId: String?) = apply { + body.externalCustomerId(externalCustomerId) + } /** - * A list of customer IDs whose usage events will be aggregated and billed under this - * subscription. By default, a subscription only considers usage events associated with its - * attached customer's customer_id. When usage_customer_ids is provided, the subscription - * includes usage events from the specified customers only. Provided usage_customer_ids must - * be either the customer for this subscription itself, or any of that customer's children. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Alias for calling [Builder.externalCustomerId] with `externalCustomerId.orElse(null)`. */ - fun usageCustomerIds(): Optional> = - Optional.ofNullable(usageCustomerIds.getNullable("usage_customer_ids")) + fun externalCustomerId(externalCustomerId: Optional) = + externalCustomerId(externalCustomerId.getOrNull()) /** - * Returns the raw JSON value of [addAdjustments]. + * Sets [Builder.externalCustomerId] to an arbitrary JSON value. * - * Unlike [addAdjustments], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.externalCustomerId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("add_adjustments") - @ExcludeMissing - fun _addAdjustments(): JsonField> = addAdjustments + fun externalCustomerId(externalCustomerId: JsonField) = apply { + body.externalCustomerId(externalCustomerId) + } + + @Deprecated("deprecated") + fun externalMarketplace(externalMarketplace: ExternalMarketplace?) = apply { + body.externalMarketplace(externalMarketplace) + } /** - * Returns the raw JSON value of [addPrices]. - * - * Unlike [addPrices], this method doesn't throw if the JSON field has an unexpected type. + * Alias for calling [Builder.externalMarketplace] with `externalMarketplace.orElse(null)`. */ - @JsonProperty("add_prices") - @ExcludeMissing - fun _addPrices(): JsonField> = addPrices + @Deprecated("deprecated") + fun externalMarketplace(externalMarketplace: Optional) = + externalMarketplace(externalMarketplace.getOrNull()) /** - * Returns the raw JSON value of [alignBillingWithSubscriptionStartDate]. + * Sets [Builder.externalMarketplace] to an arbitrary JSON value. * - * Unlike [alignBillingWithSubscriptionStartDate], this method doesn't throw if the JSON - * field has an unexpected type. + * You should usually call [Builder.externalMarketplace] with a well-typed + * [ExternalMarketplace] value instead. This method is primarily for setting the field to an + * undocumented or not yet supported value. */ - @JsonProperty("align_billing_with_subscription_start_date") - @ExcludeMissing - fun _alignBillingWithSubscriptionStartDate(): JsonField = - alignBillingWithSubscriptionStartDate + @Deprecated("deprecated") + fun externalMarketplace(externalMarketplace: JsonField) = apply { + body.externalMarketplace(externalMarketplace) + } + + @Deprecated("deprecated") + fun externalMarketplaceReportingId(externalMarketplaceReportingId: String?) = apply { + body.externalMarketplaceReportingId(externalMarketplaceReportingId) + } /** - * Returns the raw JSON value of [autoCollection]. - * - * Unlike [autoCollection], this method doesn't throw if the JSON field has an unexpected - * type. + * Alias for calling [Builder.externalMarketplaceReportingId] with + * `externalMarketplaceReportingId.orElse(null)`. */ - @JsonProperty("auto_collection") - @ExcludeMissing - fun _autoCollection(): JsonField = autoCollection + @Deprecated("deprecated") + fun externalMarketplaceReportingId(externalMarketplaceReportingId: Optional) = + externalMarketplaceReportingId(externalMarketplaceReportingId.getOrNull()) /** - * Returns the raw JSON value of [awsRegion]. + * Sets [Builder.externalMarketplaceReportingId] to an arbitrary JSON value. * - * Unlike [awsRegion], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.externalMarketplaceReportingId] with a well-typed + * [String] value instead. This method is primarily for setting the field to an undocumented + * or not yet supported value. */ @Deprecated("deprecated") - @JsonProperty("aws_region") - @ExcludeMissing - fun _awsRegion(): JsonField = awsRegion + fun externalMarketplaceReportingId(externalMarketplaceReportingId: JsonField) = + apply { + body.externalMarketplaceReportingId(externalMarketplaceReportingId) + } /** - * Returns the raw JSON value of [billingCycleAnchorConfiguration]. + * The external_plan_id of the plan that the given subscription should be switched to. Note + * that either this property or `plan_id` must be specified. + */ + fun externalPlanId(externalPlanId: String?) = apply { body.externalPlanId(externalPlanId) } + + /** Alias for calling [Builder.externalPlanId] with `externalPlanId.orElse(null)`. */ + fun externalPlanId(externalPlanId: Optional) = + externalPlanId(externalPlanId.getOrNull()) + + /** + * Sets [Builder.externalPlanId] to an arbitrary JSON value. * - * Unlike [billingCycleAnchorConfiguration], this method doesn't throw if the JSON field has - * an unexpected type. + * You should usually call [Builder.externalPlanId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("billing_cycle_anchor_configuration") - @ExcludeMissing - fun _billingCycleAnchorConfiguration(): JsonField = - billingCycleAnchorConfiguration + fun externalPlanId(externalPlanId: JsonField) = apply { + body.externalPlanId(externalPlanId) + } /** - * Returns the raw JSON value of [couponRedemptionCode]. + * An additional filter to apply to usage queries. This filter must be expressed as a + * boolean [computed property](/extensibility/advanced-metrics#computed-properties). If + * null, usage queries will not include any additional filter. + */ + fun filter(filter: String?) = apply { body.filter(filter) } + + /** Alias for calling [Builder.filter] with `filter.orElse(null)`. */ + fun filter(filter: Optional) = filter(filter.getOrNull()) + + /** + * Sets [Builder.filter] to an arbitrary JSON value. * - * Unlike [couponRedemptionCode], this method doesn't throw if the JSON field has an - * unexpected type. + * You should usually call [Builder.filter] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - @JsonProperty("coupon_redemption_code") - @ExcludeMissing - fun _couponRedemptionCode(): JsonField = couponRedemptionCode + fun filter(filter: JsonField) = apply { body.filter(filter) } + + /** The phase of the plan to start with */ + fun initialPhaseOrder(initialPhaseOrder: Long?) = apply { + body.initialPhaseOrder(initialPhaseOrder) + } /** - * Returns the raw JSON value of [creditsOverageRate]. + * Alias for [Builder.initialPhaseOrder]. * - * Unlike [creditsOverageRate], this method doesn't throw if the JSON field has an - * unexpected type. + * This unboxed primitive overload exists for backwards compatibility. */ - @Deprecated("deprecated") - @JsonProperty("credits_overage_rate") - @ExcludeMissing - fun _creditsOverageRate(): JsonField = creditsOverageRate + fun initialPhaseOrder(initialPhaseOrder: Long) = + initialPhaseOrder(initialPhaseOrder as Long?) + + /** Alias for calling [Builder.initialPhaseOrder] with `initialPhaseOrder.orElse(null)`. */ + fun initialPhaseOrder(initialPhaseOrder: Optional) = + initialPhaseOrder(initialPhaseOrder.getOrNull()) /** - * Returns the raw JSON value of [customerId]. + * Sets [Builder.initialPhaseOrder] to an arbitrary JSON value. * - * Unlike [customerId], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.initialPhaseOrder] with a well-typed [Long] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("customer_id") - @ExcludeMissing - fun _customerId(): JsonField = customerId + fun initialPhaseOrder(initialPhaseOrder: JsonField) = apply { + body.initialPhaseOrder(initialPhaseOrder) + } /** - * Returns the raw JSON value of [defaultInvoiceMemo]. + * When this subscription's accrued usage reaches this threshold, an invoice will be issued + * for the subscription. If not specified, invoices will only be issued at the end of the + * billing period. + */ + fun invoicingThreshold(invoicingThreshold: String?) = apply { + body.invoicingThreshold(invoicingThreshold) + } + + /** + * Alias for calling [Builder.invoicingThreshold] with `invoicingThreshold.orElse(null)`. + */ + fun invoicingThreshold(invoicingThreshold: Optional) = + invoicingThreshold(invoicingThreshold.getOrNull()) + + /** + * Sets [Builder.invoicingThreshold] to an arbitrary JSON value. * - * Unlike [defaultInvoiceMemo], this method doesn't throw if the JSON field has an - * unexpected type. + * You should usually call [Builder.invoicingThreshold] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("default_invoice_memo") - @ExcludeMissing - fun _defaultInvoiceMemo(): JsonField = defaultInvoiceMemo + fun invoicingThreshold(invoicingThreshold: JsonField) = apply { + body.invoicingThreshold(invoicingThreshold) + } /** - * Returns the raw JSON value of [endDate]. + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. + */ + fun metadata(metadata: Metadata?) = apply { body.metadata(metadata) } + + /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ + fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) + + /** + * Sets [Builder.metadata] to an arbitrary JSON value. * - * Unlike [endDate], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.metadata] with a well-typed [Metadata] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. */ - @JsonProperty("end_date") - @ExcludeMissing - fun _endDate(): JsonField = endDate + fun metadata(metadata: JsonField) = apply { body.metadata(metadata) } /** - * Returns the raw JSON value of [externalCustomerId]. + * The net terms determines the difference between the invoice date and the issue date for + * the invoice. If you intend the invoice to be due on issue, set this to 0. If not + * provided, this defaults to the value specified in the plan. + */ + fun netTerms(netTerms: Long?) = apply { body.netTerms(netTerms) } + + /** + * Alias for [Builder.netTerms]. * - * Unlike [externalCustomerId], this method doesn't throw if the JSON field has an - * unexpected type. + * This unboxed primitive overload exists for backwards compatibility. */ - @JsonProperty("external_customer_id") - @ExcludeMissing - fun _externalCustomerId(): JsonField = externalCustomerId + fun netTerms(netTerms: Long) = netTerms(netTerms as Long?) + + /** Alias for calling [Builder.netTerms] with `netTerms.orElse(null)`. */ + fun netTerms(netTerms: Optional) = netTerms(netTerms.getOrNull()) /** - * Returns the raw JSON value of [externalMarketplace]. + * Sets [Builder.netTerms] to an arbitrary JSON value. * - * Unlike [externalMarketplace], this method doesn't throw if the JSON field has an - * unexpected type. + * You should usually call [Builder.netTerms] with a well-typed [Long] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ + fun netTerms(netTerms: JsonField) = apply { body.netTerms(netTerms) } + @Deprecated("deprecated") - @JsonProperty("external_marketplace") - @ExcludeMissing - fun _externalMarketplace(): JsonField = externalMarketplace + fun perCreditOverageAmount(perCreditOverageAmount: Double?) = apply { + body.perCreditOverageAmount(perCreditOverageAmount) + } /** - * Returns the raw JSON value of [externalMarketplaceReportingId]. + * Alias for [Builder.perCreditOverageAmount]. * - * Unlike [externalMarketplaceReportingId], this method doesn't throw if the JSON field has - * an unexpected type. + * This unboxed primitive overload exists for backwards compatibility. */ @Deprecated("deprecated") - @JsonProperty("external_marketplace_reporting_id") - @ExcludeMissing - fun _externalMarketplaceReportingId(): JsonField = externalMarketplaceReportingId + fun perCreditOverageAmount(perCreditOverageAmount: Double) = + perCreditOverageAmount(perCreditOverageAmount as Double?) /** - * Returns the raw JSON value of [externalPlanId]. - * - * Unlike [externalPlanId], this method doesn't throw if the JSON field has an unexpected - * type. + * Alias for calling [Builder.perCreditOverageAmount] with + * `perCreditOverageAmount.orElse(null)`. */ - @JsonProperty("external_plan_id") - @ExcludeMissing - fun _externalPlanId(): JsonField = externalPlanId + @Deprecated("deprecated") + fun perCreditOverageAmount(perCreditOverageAmount: Optional) = + perCreditOverageAmount(perCreditOverageAmount.getOrNull()) /** - * Returns the raw JSON value of [filter]. + * Sets [Builder.perCreditOverageAmount] to an arbitrary JSON value. * - * Unlike [filter], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.perCreditOverageAmount] with a well-typed [Double] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("filter") @ExcludeMissing fun _filter(): JsonField = filter + @Deprecated("deprecated") + fun perCreditOverageAmount(perCreditOverageAmount: JsonField) = apply { + body.perCreditOverageAmount(perCreditOverageAmount) + } /** - * Returns the raw JSON value of [initialPhaseOrder]. - * - * Unlike [initialPhaseOrder], this method doesn't throw if the JSON field has an unexpected - * type. + * The plan that the given subscription should be switched to. Note that either this + * property or `external_plan_id` must be specified. */ - @JsonProperty("initial_phase_order") - @ExcludeMissing - fun _initialPhaseOrder(): JsonField = initialPhaseOrder + fun planId(planId: String?) = apply { body.planId(planId) } + + /** Alias for calling [Builder.planId] with `planId.orElse(null)`. */ + fun planId(planId: Optional) = planId(planId.getOrNull()) /** - * Returns the raw JSON value of [invoicingThreshold]. + * Sets [Builder.planId] to an arbitrary JSON value. * - * Unlike [invoicingThreshold], this method doesn't throw if the JSON field has an - * unexpected type. + * You should usually call [Builder.planId] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - @JsonProperty("invoicing_threshold") - @ExcludeMissing - fun _invoicingThreshold(): JsonField = invoicingThreshold + fun planId(planId: JsonField) = apply { body.planId(planId) } /** - * Returns the raw JSON value of [metadata]. - * - * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. + * Specifies which version of the plan to subscribe to. If null, the default version will be + * used. */ - @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata + fun planVersionNumber(planVersionNumber: Long?) = apply { + body.planVersionNumber(planVersionNumber) + } /** - * Returns the raw JSON value of [netTerms]. + * Alias for [Builder.planVersionNumber]. * - * Unlike [netTerms], this method doesn't throw if the JSON field has an unexpected type. + * This unboxed primitive overload exists for backwards compatibility. */ - @JsonProperty("net_terms") @ExcludeMissing fun _netTerms(): JsonField = netTerms + fun planVersionNumber(planVersionNumber: Long) = + planVersionNumber(planVersionNumber as Long?) + + /** Alias for calling [Builder.planVersionNumber] with `planVersionNumber.orElse(null)`. */ + fun planVersionNumber(planVersionNumber: Optional) = + planVersionNumber(planVersionNumber.getOrNull()) /** - * Returns the raw JSON value of [perCreditOverageAmount]. + * Sets [Builder.planVersionNumber] to an arbitrary JSON value. * - * Unlike [perCreditOverageAmount], this method doesn't throw if the JSON field has an - * unexpected type. + * You should usually call [Builder.planVersionNumber] with a well-typed [Long] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ + fun planVersionNumber(planVersionNumber: JsonField) = apply { + body.planVersionNumber(planVersionNumber) + } + + /** Optionally provide a list of overrides for prices on the plan */ @Deprecated("deprecated") - @JsonProperty("per_credit_overage_amount") - @ExcludeMissing - fun _perCreditOverageAmount(): JsonField = perCreditOverageAmount + fun priceOverrides(priceOverrides: List?) = apply { + body.priceOverrides(priceOverrides) + } + + /** Alias for calling [Builder.priceOverrides] with `priceOverrides.orElse(null)`. */ + @Deprecated("deprecated") + fun priceOverrides(priceOverrides: Optional>) = + priceOverrides(priceOverrides.getOrNull()) /** - * Returns the raw JSON value of [planId]. + * Sets [Builder.priceOverrides] to an arbitrary JSON value. * - * Unlike [planId], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.priceOverrides] with a well-typed `List` + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. */ - @JsonProperty("plan_id") @ExcludeMissing fun _planId(): JsonField = planId + @Deprecated("deprecated") + fun priceOverrides(priceOverrides: JsonField>) = apply { + body.priceOverrides(priceOverrides) + } /** - * Returns the raw JSON value of [planVersionNumber]. + * Adds a single [JsonValue] to [priceOverrides]. * - * Unlike [planVersionNumber], this method doesn't throw if the JSON field has an unexpected - * type. + * @throws IllegalStateException if the field was previously set to a non-list. */ - @JsonProperty("plan_version_number") - @ExcludeMissing - fun _planVersionNumber(): JsonField = planVersionNumber + @Deprecated("deprecated") + fun addPriceOverride(priceOverride: JsonValue) = apply { + body.addPriceOverride(priceOverride) + } /** - * Returns the raw JSON value of [priceOverrides]. - * - * Unlike [priceOverrides], this method doesn't throw if the JSON field has an unexpected - * type. + * Plan adjustments to be removed from the subscription. (Only available for accounts that + * have migrated off of legacy subscription overrides) */ - @Deprecated("deprecated") - @JsonProperty("price_overrides") - @ExcludeMissing - fun _priceOverrides(): JsonField> = priceOverrides + fun removeAdjustments(removeAdjustments: List?) = apply { + body.removeAdjustments(removeAdjustments) + } + + /** Alias for calling [Builder.removeAdjustments] with `removeAdjustments.orElse(null)`. */ + fun removeAdjustments(removeAdjustments: Optional>) = + removeAdjustments(removeAdjustments.getOrNull()) /** - * Returns the raw JSON value of [removeAdjustments]. + * Sets [Builder.removeAdjustments] to an arbitrary JSON value. * - * Unlike [removeAdjustments], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.removeAdjustments] with a well-typed + * `List` value instead. This method is primarily for setting the field to + * an undocumented or not yet supported value. */ - @JsonProperty("remove_adjustments") - @ExcludeMissing - fun _removeAdjustments(): JsonField> = removeAdjustments + fun removeAdjustments(removeAdjustments: JsonField>) = apply { + body.removeAdjustments(removeAdjustments) + } /** - * Returns the raw JSON value of [removePrices]. + * Adds a single [RemoveAdjustment] to [removeAdjustments]. * - * Unlike [removePrices], this method doesn't throw if the JSON field has an unexpected - * type. + * @throws IllegalStateException if the field was previously set to a non-list. */ - @JsonProperty("remove_prices") - @ExcludeMissing - fun _removePrices(): JsonField> = removePrices + fun addRemoveAdjustment(removeAdjustment: RemoveAdjustment) = apply { + body.addRemoveAdjustment(removeAdjustment) + } /** - * Returns the raw JSON value of [replaceAdjustments]. - * - * Unlike [replaceAdjustments], this method doesn't throw if the JSON field has an - * unexpected type. + * Plan prices to be removed from the subscription. (Only available for accounts that have + * migrated off of legacy subscription overrides) */ - @JsonProperty("replace_adjustments") - @ExcludeMissing - fun _replaceAdjustments(): JsonField> = replaceAdjustments + fun removePrices(removePrices: List?) = apply { + body.removePrices(removePrices) + } + + /** Alias for calling [Builder.removePrices] with `removePrices.orElse(null)`. */ + fun removePrices(removePrices: Optional>) = + removePrices(removePrices.getOrNull()) /** - * Returns the raw JSON value of [replacePrices]. + * Sets [Builder.removePrices] to an arbitrary JSON value. * - * Unlike [replacePrices], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.removePrices] with a well-typed `List` + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. */ - @JsonProperty("replace_prices") - @ExcludeMissing - fun _replacePrices(): JsonField> = replacePrices + fun removePrices(removePrices: JsonField>) = apply { + body.removePrices(removePrices) + } /** - * Returns the raw JSON value of [startDate]. + * Adds a single [RemovePrice] to [removePrices]. * - * Unlike [startDate], this method doesn't throw if the JSON field has an unexpected type. + * @throws IllegalStateException if the field was previously set to a non-list. */ - @JsonProperty("start_date") - @ExcludeMissing - fun _startDate(): JsonField = startDate + fun addRemovePrice(removePrice: RemovePrice) = apply { body.addRemovePrice(removePrice) } /** - * Returns the raw JSON value of [trialDurationDays]. + * Plan adjustments to be replaced with additional adjustments on the subscription. (Only + * available for accounts that have migrated off of legacy subscription overrides) + */ + fun replaceAdjustments(replaceAdjustments: List?) = apply { + body.replaceAdjustments(replaceAdjustments) + } + + /** + * Alias for calling [Builder.replaceAdjustments] with `replaceAdjustments.orElse(null)`. + */ + fun replaceAdjustments(replaceAdjustments: Optional>) = + replaceAdjustments(replaceAdjustments.getOrNull()) + + /** + * Sets [Builder.replaceAdjustments] to an arbitrary JSON value. * - * Unlike [trialDurationDays], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.replaceAdjustments] with a well-typed + * `List` value instead. This method is primarily for setting the field + * to an undocumented or not yet supported value. */ - @JsonProperty("trial_duration_days") - @ExcludeMissing - fun _trialDurationDays(): JsonField = trialDurationDays + fun replaceAdjustments(replaceAdjustments: JsonField>) = apply { + body.replaceAdjustments(replaceAdjustments) + } /** - * Returns the raw JSON value of [usageCustomerIds]. + * Adds a single [ReplaceAdjustment] to [replaceAdjustments]. * - * Unlike [usageCustomerIds], this method doesn't throw if the JSON field has an unexpected - * type. + * @throws IllegalStateException if the field was previously set to a non-list. */ - @JsonProperty("usage_customer_ids") - @ExcludeMissing - fun _usageCustomerIds(): JsonField> = usageCustomerIds + fun addReplaceAdjustment(replaceAdjustment: ReplaceAdjustment) = apply { + body.addReplaceAdjustment(replaceAdjustment) + } - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + /** + * Plan prices to be replaced with additional prices on the subscription. (Only available + * for accounts that have migrated off of legacy subscription overrides) + */ + fun replacePrices(replacePrices: List?) = apply { + body.replacePrices(replacePrices) + } - private var validated: Boolean = false + /** Alias for calling [Builder.replacePrices] with `replacePrices.orElse(null)`. */ + fun replacePrices(replacePrices: Optional>) = + replacePrices(replacePrices.getOrNull()) - fun validate(): Body = apply { - if (validated) { - return@apply - } + /** + * Sets [Builder.replacePrices] to an arbitrary JSON value. + * + * You should usually call [Builder.replacePrices] with a well-typed `List` + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. + */ + fun replacePrices(replacePrices: JsonField>) = apply { + body.replacePrices(replacePrices) + } - addAdjustments().ifPresent { it.forEach { it.validate() } } - addPrices().ifPresent { it.forEach { it.validate() } } - alignBillingWithSubscriptionStartDate() - autoCollection() - awsRegion() - billingCycleAnchorConfiguration().ifPresent { it.validate() } - couponRedemptionCode() - creditsOverageRate() - customerId() - defaultInvoiceMemo() - endDate() - externalCustomerId() - externalMarketplace() - externalMarketplaceReportingId() - externalPlanId() - filter() - initialPhaseOrder() - invoicingThreshold() - metadata().ifPresent { it.validate() } - netTerms() - perCreditOverageAmount() - planId() - planVersionNumber() - priceOverrides() - removeAdjustments().ifPresent { it.forEach { it.validate() } } - removePrices().ifPresent { it.forEach { it.validate() } } - replaceAdjustments().ifPresent { it.forEach { it.validate() } } - replacePrices().ifPresent { it.forEach { it.validate() } } - startDate() - trialDurationDays() - usageCustomerIds() - validated = true + /** + * Adds a single [ReplacePrice] to [replacePrices]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addReplacePrice(replacePrice: ReplacePrice) = apply { + body.addReplacePrice(replacePrice) } - fun toBuilder() = Builder().from(this) + fun startDate(startDate: OffsetDateTime?) = apply { body.startDate(startDate) } - companion object { + /** Alias for calling [Builder.startDate] with `startDate.orElse(null)`. */ + fun startDate(startDate: Optional) = startDate(startDate.getOrNull()) - /** Returns a mutable builder for constructing an instance of [Body]. */ - @JvmStatic fun builder() = Builder() + /** + * Sets [Builder.startDate] to an arbitrary JSON value. + * + * You should usually call [Builder.startDate] with a well-typed [OffsetDateTime] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun startDate(startDate: JsonField) = apply { body.startDate(startDate) } + + /** + * The duration of the trial period in days. If not provided, this defaults to the value + * specified in the plan. If `0` is provided, the trial on the plan will be skipped. + */ + fun trialDurationDays(trialDurationDays: Long?) = apply { + body.trialDurationDays(trialDurationDays) } - /** A builder for [Body]. */ - class Builder internal constructor() { + /** + * Alias for [Builder.trialDurationDays]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun trialDurationDays(trialDurationDays: Long) = + trialDurationDays(trialDurationDays as Long?) - private var addAdjustments: JsonField>? = null - private var addPrices: JsonField>? = null - private var alignBillingWithSubscriptionStartDate: JsonField = JsonMissing.of() - private var autoCollection: JsonField = JsonMissing.of() - private var awsRegion: JsonField = JsonMissing.of() - private var billingCycleAnchorConfiguration: - JsonField = - JsonMissing.of() - private var couponRedemptionCode: JsonField = JsonMissing.of() - private var creditsOverageRate: JsonField = JsonMissing.of() - private var customerId: JsonField = JsonMissing.of() - private var defaultInvoiceMemo: JsonField = JsonMissing.of() - private var endDate: JsonField = JsonMissing.of() - private var externalCustomerId: JsonField = JsonMissing.of() - private var externalMarketplace: JsonField = JsonMissing.of() - private var externalMarketplaceReportingId: JsonField = JsonMissing.of() - private var externalPlanId: JsonField = JsonMissing.of() - private var filter: JsonField = JsonMissing.of() - private var initialPhaseOrder: JsonField = JsonMissing.of() - private var invoicingThreshold: JsonField = JsonMissing.of() - private var metadata: JsonField = JsonMissing.of() - private var netTerms: JsonField = JsonMissing.of() - private var perCreditOverageAmount: JsonField = JsonMissing.of() - private var planId: JsonField = JsonMissing.of() - private var planVersionNumber: JsonField = JsonMissing.of() - private var priceOverrides: JsonField>? = null - private var removeAdjustments: JsonField>? = null - private var removePrices: JsonField>? = null - private var replaceAdjustments: JsonField>? = null - private var replacePrices: JsonField>? = null - private var startDate: JsonField = JsonMissing.of() - private var trialDurationDays: JsonField = JsonMissing.of() - private var usageCustomerIds: JsonField>? = null - private var additionalProperties: MutableMap = mutableMapOf() + /** Alias for calling [Builder.trialDurationDays] with `trialDurationDays.orElse(null)`. */ + fun trialDurationDays(trialDurationDays: Optional) = + trialDurationDays(trialDurationDays.getOrNull()) - @JvmSynthetic - internal fun from(body: Body) = apply { - addAdjustments = body.addAdjustments.map { it.toMutableList() } - addPrices = body.addPrices.map { it.toMutableList() } - alignBillingWithSubscriptionStartDate = body.alignBillingWithSubscriptionStartDate - autoCollection = body.autoCollection - awsRegion = body.awsRegion - billingCycleAnchorConfiguration = body.billingCycleAnchorConfiguration - couponRedemptionCode = body.couponRedemptionCode - creditsOverageRate = body.creditsOverageRate - customerId = body.customerId - defaultInvoiceMemo = body.defaultInvoiceMemo - endDate = body.endDate - externalCustomerId = body.externalCustomerId - externalMarketplace = body.externalMarketplace - externalMarketplaceReportingId = body.externalMarketplaceReportingId - externalPlanId = body.externalPlanId - filter = body.filter - initialPhaseOrder = body.initialPhaseOrder - invoicingThreshold = body.invoicingThreshold - metadata = body.metadata - netTerms = body.netTerms - perCreditOverageAmount = body.perCreditOverageAmount - planId = body.planId - planVersionNumber = body.planVersionNumber - priceOverrides = body.priceOverrides.map { it.toMutableList() } - removeAdjustments = body.removeAdjustments.map { it.toMutableList() } - removePrices = body.removePrices.map { it.toMutableList() } - replaceAdjustments = body.replaceAdjustments.map { it.toMutableList() } - replacePrices = body.replacePrices.map { it.toMutableList() } - startDate = body.startDate - trialDurationDays = body.trialDurationDays - usageCustomerIds = body.usageCustomerIds.map { it.toMutableList() } - additionalProperties = body.additionalProperties.toMutableMap() - } + /** + * Sets [Builder.trialDurationDays] to an arbitrary JSON value. + * + * You should usually call [Builder.trialDurationDays] with a well-typed [Long] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun trialDurationDays(trialDurationDays: JsonField) = apply { + body.trialDurationDays(trialDurationDays) + } - /** - * Additional adjustments to be added to the subscription. (Only available for accounts - * that have migrated off of legacy subscription overrides) - */ - fun addAdjustments(addAdjustments: List?) = - addAdjustments(JsonField.ofNullable(addAdjustments)) + /** + * A list of customer IDs whose usage events will be aggregated and billed under this + * subscription. By default, a subscription only considers usage events associated with its + * attached customer's customer_id. When usage_customer_ids is provided, the subscription + * includes usage events from the specified customers only. Provided usage_customer_ids must + * be either the customer for this subscription itself, or any of that customer's children. + */ + fun usageCustomerIds(usageCustomerIds: List?) = apply { + body.usageCustomerIds(usageCustomerIds) + } - /** Alias for calling [Builder.addAdjustments] with `addAdjustments.orElse(null)`. */ - fun addAdjustments(addAdjustments: Optional>) = - addAdjustments(addAdjustments.getOrNull()) + /** Alias for calling [Builder.usageCustomerIds] with `usageCustomerIds.orElse(null)`. */ + fun usageCustomerIds(usageCustomerIds: Optional>) = + usageCustomerIds(usageCustomerIds.getOrNull()) - /** - * Sets [Builder.addAdjustments] to an arbitrary JSON value. - * - * You should usually call [Builder.addAdjustments] with a well-typed - * `List` value instead. This method is primarily for setting the field - * to an undocumented or not yet supported value. - */ - fun addAdjustments(addAdjustments: JsonField>) = apply { - this.addAdjustments = addAdjustments.map { it.toMutableList() } - } + /** + * Sets [Builder.usageCustomerIds] to an arbitrary JSON value. + * + * You should usually call [Builder.usageCustomerIds] with a well-typed `List` value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun usageCustomerIds(usageCustomerIds: JsonField>) = apply { + body.usageCustomerIds(usageCustomerIds) + } - /** - * Adds a single [AddAdjustment] to [addAdjustments]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addAddAdjustment(addAdjustment: AddAdjustment) = apply { - addAdjustments = - (addAdjustments ?: JsonField.of(mutableListOf())).also { - checkKnown("addAdjustments", it).add(addAdjustment) - } - } + /** + * Adds a single [String] to [usageCustomerIds]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addUsageCustomerId(usageCustomerId: String) = apply { + body.addUsageCustomerId(usageCustomerId) + } - /** - * Additional prices to be added to the subscription. (Only available for accounts that - * have migrated off of legacy subscription overrides) - */ - fun addPrices(addPrices: List?) = addPrices(JsonField.ofNullable(addPrices)) + fun additionalBodyProperties(additionalBodyProperties: Map) = apply { + body.additionalProperties(additionalBodyProperties) + } - /** Alias for calling [Builder.addPrices] with `addPrices.orElse(null)`. */ - fun addPrices(addPrices: Optional>) = addPrices(addPrices.getOrNull()) + fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { + body.putAdditionalProperty(key, value) + } - /** - * Sets [Builder.addPrices] to an arbitrary JSON value. - * - * You should usually call [Builder.addPrices] with a well-typed `List` value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun addPrices(addPrices: JsonField>) = apply { - this.addPrices = addPrices.map { it.toMutableList() } + fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = + apply { + body.putAllAdditionalProperties(additionalBodyProperties) } - /** - * Adds a single [AddPrice] to [addPrices]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addAddPrice(addPrice: AddPrice) = apply { - addPrices = - (addPrices ?: JsonField.of(mutableListOf())).also { - checkKnown("addPrices", it).add(addPrice) - } - } + fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } - fun alignBillingWithSubscriptionStartDate( - alignBillingWithSubscriptionStartDate: Boolean - ) = - alignBillingWithSubscriptionStartDate( - JsonField.of(alignBillingWithSubscriptionStartDate) - ) + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + body.removeAllAdditionalProperties(keys) + } - /** - * Sets [Builder.alignBillingWithSubscriptionStartDate] to an arbitrary JSON value. - * - * You should usually call [Builder.alignBillingWithSubscriptionStartDate] with a - * well-typed [Boolean] value instead. This method is primarily for setting the field to - * an undocumented or not yet supported value. - */ - fun alignBillingWithSubscriptionStartDate( - alignBillingWithSubscriptionStartDate: JsonField - ) = apply { - this.alignBillingWithSubscriptionStartDate = alignBillingWithSubscriptionStartDate - } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - /** - * Determines whether issued invoices for this subscription will automatically be - * charged with the saved payment method on the due date. If not specified, this - * defaults to the behavior configured for this customer. - */ - fun autoCollection(autoCollection: Boolean?) = - autoCollection(JsonField.ofNullable(autoCollection)) + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - /** - * Alias for [Builder.autoCollection]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun autoCollection(autoCollection: Boolean) = autoCollection(autoCollection as Boolean?) + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) + } - /** Alias for calling [Builder.autoCollection] with `autoCollection.orElse(null)`. */ - fun autoCollection(autoCollection: Optional) = - autoCollection(autoCollection.getOrNull()) + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } - /** - * Sets [Builder.autoCollection] to an arbitrary JSON value. - * - * You should usually call [Builder.autoCollection] with a well-typed [Boolean] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun autoCollection(autoCollection: JsonField) = apply { - this.autoCollection = autoCollection - } + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - @Deprecated("deprecated") - fun awsRegion(awsRegion: String?) = awsRegion(JsonField.ofNullable(awsRegion)) + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - /** Alias for calling [Builder.awsRegion] with `awsRegion.orElse(null)`. */ - @Deprecated("deprecated") - fun awsRegion(awsRegion: Optional) = awsRegion(awsRegion.getOrNull()) + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } - /** - * Sets [Builder.awsRegion] to an arbitrary JSON value. - * - * You should usually call [Builder.awsRegion] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - @Deprecated("deprecated") - fun awsRegion(awsRegion: JsonField) = apply { this.awsRegion = awsRegion } + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } - fun billingCycleAnchorConfiguration( - billingCycleAnchorConfiguration: BillingCycleAnchorConfiguration? - ) = - billingCycleAnchorConfiguration( - JsonField.ofNullable(billingCycleAnchorConfiguration) - ) + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** - * Alias for calling [Builder.billingCycleAnchorConfiguration] with - * `billingCycleAnchorConfiguration.orElse(null)`. - */ - fun billingCycleAnchorConfiguration( - billingCycleAnchorConfiguration: Optional - ) = billingCycleAnchorConfiguration(billingCycleAnchorConfiguration.getOrNull()) + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** - * Sets [Builder.billingCycleAnchorConfiguration] to an arbitrary JSON value. - * - * You should usually call [Builder.billingCycleAnchorConfiguration] with a well-typed - * [BillingCycleAnchorConfiguration] value instead. This method is primarily for setting - * the field to an undocumented or not yet supported value. - */ - fun billingCycleAnchorConfiguration( - billingCycleAnchorConfiguration: JsonField - ) = apply { this.billingCycleAnchorConfiguration = billingCycleAnchorConfiguration } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } - /** - * Redemption code to be used for this subscription. If the coupon cannot be found by - * its redemption code, or cannot be redeemed, an error response will be returned and - * the subscription creation or plan change will not be scheduled. - */ - fun couponRedemptionCode(couponRedemptionCode: String?) = - couponRedemptionCode(JsonField.ofNullable(couponRedemptionCode)) + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } - /** - * Alias for calling [Builder.couponRedemptionCode] with - * `couponRedemptionCode.orElse(null)`. - */ - fun couponRedemptionCode(couponRedemptionCode: Optional) = - couponRedemptionCode(couponRedemptionCode.getOrNull()) + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - /** - * Sets [Builder.couponRedemptionCode] to an arbitrary JSON value. - * - * You should usually call [Builder.couponRedemptionCode] with a well-typed [String] - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - fun couponRedemptionCode(couponRedemptionCode: JsonField) = apply { - this.couponRedemptionCode = couponRedemptionCode - } + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - @Deprecated("deprecated") - fun creditsOverageRate(creditsOverageRate: Double?) = - creditsOverageRate(JsonField.ofNullable(creditsOverageRate)) + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } - /** - * Alias for [Builder.creditsOverageRate]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - @Deprecated("deprecated") - fun creditsOverageRate(creditsOverageRate: Double) = - creditsOverageRate(creditsOverageRate as Double?) + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } - /** - * Alias for calling [Builder.creditsOverageRate] with - * `creditsOverageRate.orElse(null)`. - */ - @Deprecated("deprecated") - fun creditsOverageRate(creditsOverageRate: Optional) = - creditsOverageRate(creditsOverageRate.getOrNull()) + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } - /** - * Sets [Builder.creditsOverageRate] to an arbitrary JSON value. - * - * You should usually call [Builder.creditsOverageRate] with a well-typed [Double] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - @Deprecated("deprecated") - fun creditsOverageRate(creditsOverageRate: JsonField) = apply { - this.creditsOverageRate = creditsOverageRate + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) } - fun customerId(customerId: String?) = customerId(JsonField.ofNullable(customerId)) - - /** Alias for calling [Builder.customerId] with `customerId.orElse(null)`. */ - fun customerId(customerId: Optional) = customerId(customerId.getOrNull()) - - /** - * Sets [Builder.customerId] to an arbitrary JSON value. - * - * You should usually call [Builder.customerId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun customerId(customerId: JsonField) = apply { this.customerId = customerId } + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) + } - /** - * Determines the default memo on this subscription's invoices. Note that if this is not - * provided, it is determined by the plan configuration. - */ - fun defaultInvoiceMemo(defaultInvoiceMemo: String?) = - defaultInvoiceMemo(JsonField.ofNullable(defaultInvoiceMemo)) + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } - /** - * Alias for calling [Builder.defaultInvoiceMemo] with - * `defaultInvoiceMemo.orElse(null)`. - */ - fun defaultInvoiceMemo(defaultInvoiceMemo: Optional) = - defaultInvoiceMemo(defaultInvoiceMemo.getOrNull()) + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - /** - * Sets [Builder.defaultInvoiceMemo] to an arbitrary JSON value. - * - * You should usually call [Builder.defaultInvoiceMemo] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun defaultInvoiceMemo(defaultInvoiceMemo: JsonField) = apply { - this.defaultInvoiceMemo = defaultInvoiceMemo + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun endDate(endDate: OffsetDateTime?) = endDate(JsonField.ofNullable(endDate)) - - /** Alias for calling [Builder.endDate] with `endDate.orElse(null)`. */ - fun endDate(endDate: Optional) = endDate(endDate.getOrNull()) + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } - /** - * Sets [Builder.endDate] to an arbitrary JSON value. - * - * You should usually call [Builder.endDate] with a well-typed [OffsetDateTime] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun endDate(endDate: JsonField) = apply { this.endDate = endDate } + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } - fun externalCustomerId(externalCustomerId: String?) = - externalCustomerId(JsonField.ofNullable(externalCustomerId)) + /** + * Returns an immutable instance of [SubscriptionCreateParams]. + * + * Further updates to this [Builder] will not mutate the returned instance. + */ + fun build(): SubscriptionCreateParams = + SubscriptionCreateParams( + body.build(), + additionalHeaders.build(), + additionalQueryParams.build(), + ) + } - /** - * Alias for calling [Builder.externalCustomerId] with - * `externalCustomerId.orElse(null)`. - */ - fun externalCustomerId(externalCustomerId: Optional) = - externalCustomerId(externalCustomerId.getOrNull()) + @JvmSynthetic internal fun _body(): Body = body - /** - * Sets [Builder.externalCustomerId] to an arbitrary JSON value. - * - * You should usually call [Builder.externalCustomerId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun externalCustomerId(externalCustomerId: JsonField) = apply { - this.externalCustomerId = externalCustomerId - } + override fun _headers(): Headers = additionalHeaders - @Deprecated("deprecated") - fun externalMarketplace(externalMarketplace: ExternalMarketplace?) = - externalMarketplace(JsonField.ofNullable(externalMarketplace)) + override fun _queryParams(): QueryParams = additionalQueryParams - /** - * Alias for calling [Builder.externalMarketplace] with - * `externalMarketplace.orElse(null)`. - */ - @Deprecated("deprecated") - fun externalMarketplace(externalMarketplace: Optional) = - externalMarketplace(externalMarketplace.getOrNull()) + class Body + private constructor( + private val addAdjustments: JsonField>, + private val addPrices: JsonField>, + private val alignBillingWithSubscriptionStartDate: JsonField, + private val autoCollection: JsonField, + private val awsRegion: JsonField, + private val billingCycleAnchorConfiguration: JsonField, + private val couponRedemptionCode: JsonField, + private val creditsOverageRate: JsonField, + private val customerId: JsonField, + private val defaultInvoiceMemo: JsonField, + private val endDate: JsonField, + private val externalCustomerId: JsonField, + private val externalMarketplace: JsonField, + private val externalMarketplaceReportingId: JsonField, + private val externalPlanId: JsonField, + private val filter: JsonField, + private val initialPhaseOrder: JsonField, + private val invoicingThreshold: JsonField, + private val metadata: JsonField, + private val netTerms: JsonField, + private val perCreditOverageAmount: JsonField, + private val planId: JsonField, + private val planVersionNumber: JsonField, + private val priceOverrides: JsonField>, + private val removeAdjustments: JsonField>, + private val removePrices: JsonField>, + private val replaceAdjustments: JsonField>, + private val replacePrices: JsonField>, + private val startDate: JsonField, + private val trialDurationDays: JsonField, + private val usageCustomerIds: JsonField>, + private val additionalProperties: MutableMap, + ) { - /** - * Sets [Builder.externalMarketplace] to an arbitrary JSON value. - * - * You should usually call [Builder.externalMarketplace] with a well-typed - * [ExternalMarketplace] value instead. This method is primarily for setting the field - * to an undocumented or not yet supported value. - */ - @Deprecated("deprecated") - fun externalMarketplace(externalMarketplace: JsonField) = apply { - this.externalMarketplace = externalMarketplace - } + @JsonCreator + private constructor( + @JsonProperty("add_adjustments") + @ExcludeMissing + addAdjustments: JsonField> = JsonMissing.of(), + @JsonProperty("add_prices") + @ExcludeMissing + addPrices: JsonField> = JsonMissing.of(), + @JsonProperty("align_billing_with_subscription_start_date") + @ExcludeMissing + alignBillingWithSubscriptionStartDate: JsonField = JsonMissing.of(), + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("aws_region") + @ExcludeMissing + awsRegion: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_anchor_configuration") + @ExcludeMissing + billingCycleAnchorConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("coupon_redemption_code") + @ExcludeMissing + couponRedemptionCode: JsonField = JsonMissing.of(), + @JsonProperty("credits_overage_rate") + @ExcludeMissing + creditsOverageRate: JsonField = JsonMissing.of(), + @JsonProperty("customer_id") + @ExcludeMissing + customerId: JsonField = JsonMissing.of(), + @JsonProperty("default_invoice_memo") + @ExcludeMissing + defaultInvoiceMemo: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("external_customer_id") + @ExcludeMissing + externalCustomerId: JsonField = JsonMissing.of(), + @JsonProperty("external_marketplace") + @ExcludeMissing + externalMarketplace: JsonField = JsonMissing.of(), + @JsonProperty("external_marketplace_reporting_id") + @ExcludeMissing + externalMarketplaceReportingId: JsonField = JsonMissing.of(), + @JsonProperty("external_plan_id") + @ExcludeMissing + externalPlanId: JsonField = JsonMissing.of(), + @JsonProperty("filter") @ExcludeMissing filter: JsonField = JsonMissing.of(), + @JsonProperty("initial_phase_order") + @ExcludeMissing + initialPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_threshold") + @ExcludeMissing + invoicingThreshold: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("per_credit_overage_amount") + @ExcludeMissing + perCreditOverageAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_id") @ExcludeMissing planId: JsonField = JsonMissing.of(), + @JsonProperty("plan_version_number") + @ExcludeMissing + planVersionNumber: JsonField = JsonMissing.of(), + @JsonProperty("price_overrides") + @ExcludeMissing + priceOverrides: JsonField> = JsonMissing.of(), + @JsonProperty("remove_adjustments") + @ExcludeMissing + removeAdjustments: JsonField> = JsonMissing.of(), + @JsonProperty("remove_prices") + @ExcludeMissing + removePrices: JsonField> = JsonMissing.of(), + @JsonProperty("replace_adjustments") + @ExcludeMissing + replaceAdjustments: JsonField> = JsonMissing.of(), + @JsonProperty("replace_prices") + @ExcludeMissing + replacePrices: JsonField> = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("trial_duration_days") + @ExcludeMissing + trialDurationDays: JsonField = JsonMissing.of(), + @JsonProperty("usage_customer_ids") + @ExcludeMissing + usageCustomerIds: JsonField> = JsonMissing.of(), + ) : this( + addAdjustments, + addPrices, + alignBillingWithSubscriptionStartDate, + autoCollection, + awsRegion, + billingCycleAnchorConfiguration, + couponRedemptionCode, + creditsOverageRate, + customerId, + defaultInvoiceMemo, + endDate, + externalCustomerId, + externalMarketplace, + externalMarketplaceReportingId, + externalPlanId, + filter, + initialPhaseOrder, + invoicingThreshold, + metadata, + netTerms, + perCreditOverageAmount, + planId, + planVersionNumber, + priceOverrides, + removeAdjustments, + removePrices, + replaceAdjustments, + replacePrices, + startDate, + trialDurationDays, + usageCustomerIds, + mutableMapOf(), + ) - @Deprecated("deprecated") - fun externalMarketplaceReportingId(externalMarketplaceReportingId: String?) = - externalMarketplaceReportingId(JsonField.ofNullable(externalMarketplaceReportingId)) - - /** - * Alias for calling [Builder.externalMarketplaceReportingId] with - * `externalMarketplaceReportingId.orElse(null)`. - */ - @Deprecated("deprecated") - fun externalMarketplaceReportingId(externalMarketplaceReportingId: Optional) = - externalMarketplaceReportingId(externalMarketplaceReportingId.getOrNull()) - - /** - * Sets [Builder.externalMarketplaceReportingId] to an arbitrary JSON value. - * - * You should usually call [Builder.externalMarketplaceReportingId] with a well-typed - * [String] value instead. This method is primarily for setting the field to an - * undocumented or not yet supported value. - */ - @Deprecated("deprecated") - fun externalMarketplaceReportingId(externalMarketplaceReportingId: JsonField) = - apply { - this.externalMarketplaceReportingId = externalMarketplaceReportingId - } - - /** - * The external_plan_id of the plan that the given subscription should be switched to. - * Note that either this property or `plan_id` must be specified. - */ - fun externalPlanId(externalPlanId: String?) = - externalPlanId(JsonField.ofNullable(externalPlanId)) - - /** Alias for calling [Builder.externalPlanId] with `externalPlanId.orElse(null)`. */ - fun externalPlanId(externalPlanId: Optional) = - externalPlanId(externalPlanId.getOrNull()) - - /** - * Sets [Builder.externalPlanId] to an arbitrary JSON value. - * - * You should usually call [Builder.externalPlanId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun externalPlanId(externalPlanId: JsonField) = apply { - this.externalPlanId = externalPlanId - } - - /** - * An additional filter to apply to usage queries. This filter must be expressed as a - * boolean [computed property](/extensibility/advanced-metrics#computed-properties). If - * null, usage queries will not include any additional filter. - */ - fun filter(filter: String?) = filter(JsonField.ofNullable(filter)) - - /** Alias for calling [Builder.filter] with `filter.orElse(null)`. */ - fun filter(filter: Optional) = filter(filter.getOrNull()) - - /** - * Sets [Builder.filter] to an arbitrary JSON value. - * - * You should usually call [Builder.filter] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun filter(filter: JsonField) = apply { this.filter = filter } - - /** The phase of the plan to start with */ - fun initialPhaseOrder(initialPhaseOrder: Long?) = - initialPhaseOrder(JsonField.ofNullable(initialPhaseOrder)) - - /** - * Alias for [Builder.initialPhaseOrder]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun initialPhaseOrder(initialPhaseOrder: Long) = - initialPhaseOrder(initialPhaseOrder as Long?) - - /** - * Alias for calling [Builder.initialPhaseOrder] with `initialPhaseOrder.orElse(null)`. - */ - fun initialPhaseOrder(initialPhaseOrder: Optional) = - initialPhaseOrder(initialPhaseOrder.getOrNull()) - - /** - * Sets [Builder.initialPhaseOrder] to an arbitrary JSON value. - * - * You should usually call [Builder.initialPhaseOrder] with a well-typed [Long] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun initialPhaseOrder(initialPhaseOrder: JsonField) = apply { - this.initialPhaseOrder = initialPhaseOrder - } - - /** - * When this subscription's accrued usage reaches this threshold, an invoice will be - * issued for the subscription. If not specified, invoices will only be issued at the - * end of the billing period. - */ - fun invoicingThreshold(invoicingThreshold: String?) = - invoicingThreshold(JsonField.ofNullable(invoicingThreshold)) - - /** - * Alias for calling [Builder.invoicingThreshold] with - * `invoicingThreshold.orElse(null)`. - */ - fun invoicingThreshold(invoicingThreshold: Optional) = - invoicingThreshold(invoicingThreshold.getOrNull()) - - /** - * Sets [Builder.invoicingThreshold] to an arbitrary JSON value. - * - * You should usually call [Builder.invoicingThreshold] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun invoicingThreshold(invoicingThreshold: JsonField) = apply { - this.invoicingThreshold = invoicingThreshold - } - - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by - * setting `metadata` to `null`. - */ - fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) - - /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ - fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) - - /** - * Sets [Builder.metadata] to an arbitrary JSON value. - * - * You should usually call [Builder.metadata] with a well-typed [Metadata] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun metadata(metadata: JsonField) = apply { this.metadata = metadata } - - /** - * The net terms determines the difference between the invoice date and the issue date - * for the invoice. If you intend the invoice to be due on issue, set this to 0. If not - * provided, this defaults to the value specified in the plan. - */ - fun netTerms(netTerms: Long?) = netTerms(JsonField.ofNullable(netTerms)) - - /** - * Alias for [Builder.netTerms]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun netTerms(netTerms: Long) = netTerms(netTerms as Long?) - - /** Alias for calling [Builder.netTerms] with `netTerms.orElse(null)`. */ - fun netTerms(netTerms: Optional) = netTerms(netTerms.getOrNull()) - - /** - * Sets [Builder.netTerms] to an arbitrary JSON value. - * - * You should usually call [Builder.netTerms] with a well-typed [Long] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun netTerms(netTerms: JsonField) = apply { this.netTerms = netTerms } - - @Deprecated("deprecated") - fun perCreditOverageAmount(perCreditOverageAmount: Double?) = - perCreditOverageAmount(JsonField.ofNullable(perCreditOverageAmount)) - - /** - * Alias for [Builder.perCreditOverageAmount]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - @Deprecated("deprecated") - fun perCreditOverageAmount(perCreditOverageAmount: Double) = - perCreditOverageAmount(perCreditOverageAmount as Double?) - - /** - * Alias for calling [Builder.perCreditOverageAmount] with - * `perCreditOverageAmount.orElse(null)`. - */ - @Deprecated("deprecated") - fun perCreditOverageAmount(perCreditOverageAmount: Optional) = - perCreditOverageAmount(perCreditOverageAmount.getOrNull()) - - /** - * Sets [Builder.perCreditOverageAmount] to an arbitrary JSON value. - * - * You should usually call [Builder.perCreditOverageAmount] with a well-typed [Double] - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - @Deprecated("deprecated") - fun perCreditOverageAmount(perCreditOverageAmount: JsonField) = apply { - this.perCreditOverageAmount = perCreditOverageAmount - } - - /** - * The plan that the given subscription should be switched to. Note that either this - * property or `external_plan_id` must be specified. - */ - fun planId(planId: String?) = planId(JsonField.ofNullable(planId)) - - /** Alias for calling [Builder.planId] with `planId.orElse(null)`. */ - fun planId(planId: Optional) = planId(planId.getOrNull()) - - /** - * Sets [Builder.planId] to an arbitrary JSON value. - * - * You should usually call [Builder.planId] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun planId(planId: JsonField) = apply { this.planId = planId } - - /** - * Specifies which version of the plan to subscribe to. If null, the default version - * will be used. - */ - fun planVersionNumber(planVersionNumber: Long?) = - planVersionNumber(JsonField.ofNullable(planVersionNumber)) - - /** - * Alias for [Builder.planVersionNumber]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun planVersionNumber(planVersionNumber: Long) = - planVersionNumber(planVersionNumber as Long?) - - /** - * Alias for calling [Builder.planVersionNumber] with `planVersionNumber.orElse(null)`. - */ - fun planVersionNumber(planVersionNumber: Optional) = - planVersionNumber(planVersionNumber.getOrNull()) - - /** - * Sets [Builder.planVersionNumber] to an arbitrary JSON value. - * - * You should usually call [Builder.planVersionNumber] with a well-typed [Long] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun planVersionNumber(planVersionNumber: JsonField) = apply { - this.planVersionNumber = planVersionNumber - } - - /** Optionally provide a list of overrides for prices on the plan */ - @Deprecated("deprecated") - fun priceOverrides(priceOverrides: List?) = - priceOverrides(JsonField.ofNullable(priceOverrides)) - - /** Alias for calling [Builder.priceOverrides] with `priceOverrides.orElse(null)`. */ - @Deprecated("deprecated") - fun priceOverrides(priceOverrides: Optional>) = - priceOverrides(priceOverrides.getOrNull()) - - /** - * Sets [Builder.priceOverrides] to an arbitrary JSON value. - * - * You should usually call [Builder.priceOverrides] with a well-typed `List` - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - @Deprecated("deprecated") - fun priceOverrides(priceOverrides: JsonField>) = apply { - this.priceOverrides = priceOverrides.map { it.toMutableList() } - } - - /** - * Adds a single [JsonValue] to [priceOverrides]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - @Deprecated("deprecated") - fun addPriceOverride(priceOverride: JsonValue) = apply { - priceOverrides = - (priceOverrides ?: JsonField.of(mutableListOf())).also { - checkKnown("priceOverrides", it).add(priceOverride) - } - } - - /** - * Plan adjustments to be removed from the subscription. (Only available for accounts - * that have migrated off of legacy subscription overrides) - */ - fun removeAdjustments(removeAdjustments: List?) = - removeAdjustments(JsonField.ofNullable(removeAdjustments)) - - /** - * Alias for calling [Builder.removeAdjustments] with `removeAdjustments.orElse(null)`. - */ - fun removeAdjustments(removeAdjustments: Optional>) = - removeAdjustments(removeAdjustments.getOrNull()) - - /** - * Sets [Builder.removeAdjustments] to an arbitrary JSON value. - * - * You should usually call [Builder.removeAdjustments] with a well-typed - * `List` value instead. This method is primarily for setting the - * field to an undocumented or not yet supported value. - */ - fun removeAdjustments(removeAdjustments: JsonField>) = apply { - this.removeAdjustments = removeAdjustments.map { it.toMutableList() } - } - - /** - * Adds a single [RemoveAdjustment] to [removeAdjustments]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addRemoveAdjustment(removeAdjustment: RemoveAdjustment) = apply { - removeAdjustments = - (removeAdjustments ?: JsonField.of(mutableListOf())).also { - checkKnown("removeAdjustments", it).add(removeAdjustment) - } - } - - /** - * Plan prices to be removed from the subscription. (Only available for accounts that - * have migrated off of legacy subscription overrides) - */ - fun removePrices(removePrices: List?) = - removePrices(JsonField.ofNullable(removePrices)) - - /** Alias for calling [Builder.removePrices] with `removePrices.orElse(null)`. */ - fun removePrices(removePrices: Optional>) = - removePrices(removePrices.getOrNull()) - - /** - * Sets [Builder.removePrices] to an arbitrary JSON value. - * - * You should usually call [Builder.removePrices] with a well-typed `List` - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - fun removePrices(removePrices: JsonField>) = apply { - this.removePrices = removePrices.map { it.toMutableList() } - } - - /** - * Adds a single [RemovePrice] to [removePrices]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addRemovePrice(removePrice: RemovePrice) = apply { - removePrices = - (removePrices ?: JsonField.of(mutableListOf())).also { - checkKnown("removePrices", it).add(removePrice) - } - } - - /** - * Plan adjustments to be replaced with additional adjustments on the subscription. - * (Only available for accounts that have migrated off of legacy subscription overrides) - */ - fun replaceAdjustments(replaceAdjustments: List?) = - replaceAdjustments(JsonField.ofNullable(replaceAdjustments)) - - /** - * Alias for calling [Builder.replaceAdjustments] with - * `replaceAdjustments.orElse(null)`. - */ - fun replaceAdjustments(replaceAdjustments: Optional>) = - replaceAdjustments(replaceAdjustments.getOrNull()) - - /** - * Sets [Builder.replaceAdjustments] to an arbitrary JSON value. - * - * You should usually call [Builder.replaceAdjustments] with a well-typed - * `List` value instead. This method is primarily for setting the - * field to an undocumented or not yet supported value. - */ - fun replaceAdjustments(replaceAdjustments: JsonField>) = apply { - this.replaceAdjustments = replaceAdjustments.map { it.toMutableList() } - } + /** + * Additional adjustments to be added to the subscription. (Only available for accounts that + * have migrated off of legacy subscription overrides) + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun addAdjustments(): Optional> = + Optional.ofNullable(addAdjustments.getNullable("add_adjustments")) - /** - * Adds a single [ReplaceAdjustment] to [replaceAdjustments]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addReplaceAdjustment(replaceAdjustment: ReplaceAdjustment) = apply { - replaceAdjustments = - (replaceAdjustments ?: JsonField.of(mutableListOf())).also { - checkKnown("replaceAdjustments", it).add(replaceAdjustment) - } - } + /** + * Additional prices to be added to the subscription. (Only available for accounts that have + * migrated off of legacy subscription overrides) + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun addPrices(): Optional> = + Optional.ofNullable(addPrices.getNullable("add_prices")) - /** - * Plan prices to be replaced with additional prices on the subscription. (Only - * available for accounts that have migrated off of legacy subscription overrides) - */ - fun replacePrices(replacePrices: List?) = - replacePrices(JsonField.ofNullable(replacePrices)) + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun alignBillingWithSubscriptionStartDate(): Optional = + Optional.ofNullable( + alignBillingWithSubscriptionStartDate.getNullable( + "align_billing_with_subscription_start_date" + ) + ) - /** Alias for calling [Builder.replacePrices] with `replacePrices.orElse(null)`. */ - fun replacePrices(replacePrices: Optional>) = - replacePrices(replacePrices.getOrNull()) + /** + * Determines whether issued invoices for this subscription will automatically be charged + * with the saved payment method on the due date. If not specified, this defaults to the + * behavior configured for this customer. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun autoCollection(): Optional = + Optional.ofNullable(autoCollection.getNullable("auto_collection")) - /** - * Sets [Builder.replacePrices] to an arbitrary JSON value. - * - * You should usually call [Builder.replacePrices] with a well-typed - * `List` value instead. This method is primarily for setting the field to - * an undocumented or not yet supported value. - */ - fun replacePrices(replacePrices: JsonField>) = apply { - this.replacePrices = replacePrices.map { it.toMutableList() } - } + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + @Deprecated("deprecated") + fun awsRegion(): Optional = Optional.ofNullable(awsRegion.getNullable("aws_region")) - /** - * Adds a single [ReplacePrice] to [replacePrices]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addReplacePrice(replacePrice: ReplacePrice) = apply { - replacePrices = - (replacePrices ?: JsonField.of(mutableListOf())).also { - checkKnown("replacePrices", it).add(replacePrice) - } - } + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun billingCycleAnchorConfiguration(): Optional = + Optional.ofNullable( + billingCycleAnchorConfiguration.getNullable("billing_cycle_anchor_configuration") + ) - fun startDate(startDate: OffsetDateTime?) = startDate(JsonField.ofNullable(startDate)) + /** + * Redemption code to be used for this subscription. If the coupon cannot be found by its + * redemption code, or cannot be redeemed, an error response will be returned and the + * subscription creation or plan change will not be scheduled. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun couponRedemptionCode(): Optional = + Optional.ofNullable(couponRedemptionCode.getNullable("coupon_redemption_code")) - /** Alias for calling [Builder.startDate] with `startDate.orElse(null)`. */ - fun startDate(startDate: Optional) = startDate(startDate.getOrNull()) + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + @Deprecated("deprecated") + fun creditsOverageRate(): Optional = + Optional.ofNullable(creditsOverageRate.getNullable("credits_overage_rate")) - /** - * Sets [Builder.startDate] to an arbitrary JSON value. - * - * You should usually call [Builder.startDate] with a well-typed [OffsetDateTime] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun startDate(startDate: JsonField) = apply { - this.startDate = startDate - } + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun customerId(): Optional = + Optional.ofNullable(customerId.getNullable("customer_id")) - /** - * The duration of the trial period in days. If not provided, this defaults to the value - * specified in the plan. If `0` is provided, the trial on the plan will be skipped. - */ - fun trialDurationDays(trialDurationDays: Long?) = - trialDurationDays(JsonField.ofNullable(trialDurationDays)) + /** + * Determines the default memo on this subscription's invoices. Note that if this is not + * provided, it is determined by the plan configuration. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun defaultInvoiceMemo(): Optional = + Optional.ofNullable(defaultInvoiceMemo.getNullable("default_invoice_memo")) - /** - * Alias for [Builder.trialDurationDays]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun trialDurationDays(trialDurationDays: Long) = - trialDurationDays(trialDurationDays as Long?) + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun endDate(): Optional = + Optional.ofNullable(endDate.getNullable("end_date")) - /** - * Alias for calling [Builder.trialDurationDays] with `trialDurationDays.orElse(null)`. - */ - fun trialDurationDays(trialDurationDays: Optional) = - trialDurationDays(trialDurationDays.getOrNull()) + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun externalCustomerId(): Optional = + Optional.ofNullable(externalCustomerId.getNullable("external_customer_id")) - /** - * Sets [Builder.trialDurationDays] to an arbitrary JSON value. - * - * You should usually call [Builder.trialDurationDays] with a well-typed [Long] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun trialDurationDays(trialDurationDays: JsonField) = apply { - this.trialDurationDays = trialDurationDays - } + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + @Deprecated("deprecated") + fun externalMarketplace(): Optional = + Optional.ofNullable(externalMarketplace.getNullable("external_marketplace")) - /** - * A list of customer IDs whose usage events will be aggregated and billed under this - * subscription. By default, a subscription only considers usage events associated with - * its attached customer's customer_id. When usage_customer_ids is provided, the - * subscription includes usage events from the specified customers only. Provided - * usage_customer_ids must be either the customer for this subscription itself, or any - * of that customer's children. - */ - fun usageCustomerIds(usageCustomerIds: List?) = - usageCustomerIds(JsonField.ofNullable(usageCustomerIds)) + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + @Deprecated("deprecated") + fun externalMarketplaceReportingId(): Optional = + Optional.ofNullable( + externalMarketplaceReportingId.getNullable("external_marketplace_reporting_id") + ) - /** - * Alias for calling [Builder.usageCustomerIds] with `usageCustomerIds.orElse(null)`. - */ - fun usageCustomerIds(usageCustomerIds: Optional>) = - usageCustomerIds(usageCustomerIds.getOrNull()) + /** + * The external_plan_id of the plan that the given subscription should be switched to. Note + * that either this property or `plan_id` must be specified. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun externalPlanId(): Optional = + Optional.ofNullable(externalPlanId.getNullable("external_plan_id")) - /** - * Sets [Builder.usageCustomerIds] to an arbitrary JSON value. - * - * You should usually call [Builder.usageCustomerIds] with a well-typed `List` - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - fun usageCustomerIds(usageCustomerIds: JsonField>) = apply { - this.usageCustomerIds = usageCustomerIds.map { it.toMutableList() } - } + /** + * An additional filter to apply to usage queries. This filter must be expressed as a + * boolean [computed property](/extensibility/advanced-metrics#computed-properties). If + * null, usage queries will not include any additional filter. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun filter(): Optional = Optional.ofNullable(filter.getNullable("filter")) - /** - * Adds a single [String] to [usageCustomerIds]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addUsageCustomerId(usageCustomerId: String) = apply { - usageCustomerIds = - (usageCustomerIds ?: JsonField.of(mutableListOf())).also { - checkKnown("usageCustomerIds", it).add(usageCustomerId) - } - } + /** + * The phase of the plan to start with + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun initialPhaseOrder(): Optional = + Optional.ofNullable(initialPhaseOrder.getNullable("initial_phase_order")) - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } + /** + * When this subscription's accrued usage reaches this threshold, an invoice will be issued + * for the subscription. If not specified, invoices will only be issued at the end of the + * billing period. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun invoicingThreshold(): Optional = + Optional.ofNullable(invoicingThreshold.getNullable("invoicing_threshold")) - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } + /** + * The net terms determines the difference between the invoice date and the issue date for + * the invoice. If you intend the invoice to be due on issue, set this to 0. If not + * provided, this defaults to the value specified in the plan. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun netTerms(): Optional = Optional.ofNullable(netTerms.getNullable("net_terms")) - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + @Deprecated("deprecated") + fun perCreditOverageAmount(): Optional = + Optional.ofNullable(perCreditOverageAmount.getNullable("per_credit_overage_amount")) - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } + /** + * The plan that the given subscription should be switched to. Note that either this + * property or `external_plan_id` must be specified. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun planId(): Optional = Optional.ofNullable(planId.getNullable("plan_id")) - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - */ - fun build(): Body = - Body( - (addAdjustments ?: JsonMissing.of()).map { it.toImmutable() }, - (addPrices ?: JsonMissing.of()).map { it.toImmutable() }, - alignBillingWithSubscriptionStartDate, - autoCollection, - awsRegion, - billingCycleAnchorConfiguration, - couponRedemptionCode, - creditsOverageRate, - customerId, - defaultInvoiceMemo, - endDate, - externalCustomerId, - externalMarketplace, - externalMarketplaceReportingId, - externalPlanId, - filter, - initialPhaseOrder, - invoicingThreshold, - metadata, - netTerms, - perCreditOverageAmount, - planId, - planVersionNumber, - (priceOverrides ?: JsonMissing.of()).map { it.toImmutable() }, - (removeAdjustments ?: JsonMissing.of()).map { it.toImmutable() }, - (removePrices ?: JsonMissing.of()).map { it.toImmutable() }, - (replaceAdjustments ?: JsonMissing.of()).map { it.toImmutable() }, - (replacePrices ?: JsonMissing.of()).map { it.toImmutable() }, - startDate, - trialDurationDays, - (usageCustomerIds ?: JsonMissing.of()).map { it.toImmutable() }, - additionalProperties.toImmutable(), - ) - } + /** + * Specifies which version of the plan to subscribe to. If null, the default version will be + * used. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun planVersionNumber(): Optional = + Optional.ofNullable(planVersionNumber.getNullable("plan_version_number")) - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } + /** + * Optionally provide a list of overrides for prices on the plan + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + @Deprecated("deprecated") + fun priceOverrides(): Optional> = + Optional.ofNullable(priceOverrides.getNullable("price_overrides")) - return /* spotless:off */ other is Body && addAdjustments == other.addAdjustments && addPrices == other.addPrices && alignBillingWithSubscriptionStartDate == other.alignBillingWithSubscriptionStartDate && autoCollection == other.autoCollection && awsRegion == other.awsRegion && billingCycleAnchorConfiguration == other.billingCycleAnchorConfiguration && couponRedemptionCode == other.couponRedemptionCode && creditsOverageRate == other.creditsOverageRate && customerId == other.customerId && defaultInvoiceMemo == other.defaultInvoiceMemo && endDate == other.endDate && externalCustomerId == other.externalCustomerId && externalMarketplace == other.externalMarketplace && externalMarketplaceReportingId == other.externalMarketplaceReportingId && externalPlanId == other.externalPlanId && filter == other.filter && initialPhaseOrder == other.initialPhaseOrder && invoicingThreshold == other.invoicingThreshold && metadata == other.metadata && netTerms == other.netTerms && perCreditOverageAmount == other.perCreditOverageAmount && planId == other.planId && planVersionNumber == other.planVersionNumber && priceOverrides == other.priceOverrides && removeAdjustments == other.removeAdjustments && removePrices == other.removePrices && replaceAdjustments == other.replaceAdjustments && replacePrices == other.replacePrices && startDate == other.startDate && trialDurationDays == other.trialDurationDays && usageCustomerIds == other.usageCustomerIds && additionalProperties == other.additionalProperties /* spotless:on */ - } + /** + * Plan adjustments to be removed from the subscription. (Only available for accounts that + * have migrated off of legacy subscription overrides) + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun removeAdjustments(): Optional> = + Optional.ofNullable(removeAdjustments.getNullable("remove_adjustments")) - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(addAdjustments, addPrices, alignBillingWithSubscriptionStartDate, autoCollection, awsRegion, billingCycleAnchorConfiguration, couponRedemptionCode, creditsOverageRate, customerId, defaultInvoiceMemo, endDate, externalCustomerId, externalMarketplace, externalMarketplaceReportingId, externalPlanId, filter, initialPhaseOrder, invoicingThreshold, metadata, netTerms, perCreditOverageAmount, planId, planVersionNumber, priceOverrides, removeAdjustments, removePrices, replaceAdjustments, replacePrices, startDate, trialDurationDays, usageCustomerIds, additionalProperties) } - /* spotless:on */ + /** + * Plan prices to be removed from the subscription. (Only available for accounts that have + * migrated off of legacy subscription overrides) + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun removePrices(): Optional> = + Optional.ofNullable(removePrices.getNullable("remove_prices")) - override fun hashCode(): Int = hashCode + /** + * Plan adjustments to be replaced with additional adjustments on the subscription. (Only + * available for accounts that have migrated off of legacy subscription overrides) + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun replaceAdjustments(): Optional> = + Optional.ofNullable(replaceAdjustments.getNullable("replace_adjustments")) - override fun toString() = - "Body{addAdjustments=$addAdjustments, addPrices=$addPrices, alignBillingWithSubscriptionStartDate=$alignBillingWithSubscriptionStartDate, autoCollection=$autoCollection, awsRegion=$awsRegion, billingCycleAnchorConfiguration=$billingCycleAnchorConfiguration, couponRedemptionCode=$couponRedemptionCode, creditsOverageRate=$creditsOverageRate, customerId=$customerId, defaultInvoiceMemo=$defaultInvoiceMemo, endDate=$endDate, externalCustomerId=$externalCustomerId, externalMarketplace=$externalMarketplace, externalMarketplaceReportingId=$externalMarketplaceReportingId, externalPlanId=$externalPlanId, filter=$filter, initialPhaseOrder=$initialPhaseOrder, invoicingThreshold=$invoicingThreshold, metadata=$metadata, netTerms=$netTerms, perCreditOverageAmount=$perCreditOverageAmount, planId=$planId, planVersionNumber=$planVersionNumber, priceOverrides=$priceOverrides, removeAdjustments=$removeAdjustments, removePrices=$removePrices, replaceAdjustments=$replaceAdjustments, replacePrices=$replacePrices, startDate=$startDate, trialDurationDays=$trialDurationDays, usageCustomerIds=$usageCustomerIds, additionalProperties=$additionalProperties}" - } + /** + * Plan prices to be replaced with additional prices on the subscription. (Only available + * for accounts that have migrated off of legacy subscription overrides) + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun replacePrices(): Optional> = + Optional.ofNullable(replacePrices.getNullable("replace_prices")) - fun toBuilder() = Builder().from(this) + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun startDate(): Optional = + Optional.ofNullable(startDate.getNullable("start_date")) - companion object { + /** + * The duration of the trial period in days. If not provided, this defaults to the value + * specified in the plan. If `0` is provided, the trial on the plan will be skipped. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun trialDurationDays(): Optional = + Optional.ofNullable(trialDurationDays.getNullable("trial_duration_days")) - @JvmStatic fun none(): SubscriptionCreateParams = builder().build() + /** + * A list of customer IDs whose usage events will be aggregated and billed under this + * subscription. By default, a subscription only considers usage events associated with its + * attached customer's customer_id. When usage_customer_ids is provided, the subscription + * includes usage events from the specified customers only. Provided usage_customer_ids must + * be either the customer for this subscription itself, or any of that customer's children. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun usageCustomerIds(): Optional> = + Optional.ofNullable(usageCustomerIds.getNullable("usage_customer_ids")) - /** Returns a mutable builder for constructing an instance of [SubscriptionCreateParams]. */ - @JvmStatic fun builder() = Builder() - } + /** + * Returns the raw JSON value of [addAdjustments]. + * + * Unlike [addAdjustments], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("add_adjustments") + @ExcludeMissing + fun _addAdjustments(): JsonField> = addAdjustments - /** A builder for [SubscriptionCreateParams]. */ - @NoAutoDetect - class Builder internal constructor() { + /** + * Returns the raw JSON value of [addPrices]. + * + * Unlike [addPrices], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("add_prices") + @ExcludeMissing + fun _addPrices(): JsonField> = addPrices - private var body: Body.Builder = Body.builder() - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + /** + * Returns the raw JSON value of [alignBillingWithSubscriptionStartDate]. + * + * Unlike [alignBillingWithSubscriptionStartDate], this method doesn't throw if the JSON + * field has an unexpected type. + */ + @JsonProperty("align_billing_with_subscription_start_date") + @ExcludeMissing + fun _alignBillingWithSubscriptionStartDate(): JsonField = + alignBillingWithSubscriptionStartDate - @JvmSynthetic - internal fun from(subscriptionCreateParams: SubscriptionCreateParams) = apply { - body = subscriptionCreateParams.body.toBuilder() - additionalHeaders = subscriptionCreateParams.additionalHeaders.toBuilder() - additionalQueryParams = subscriptionCreateParams.additionalQueryParams.toBuilder() - } + /** + * Returns the raw JSON value of [autoCollection]. + * + * Unlike [autoCollection], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("auto_collection") + @ExcludeMissing + fun _autoCollection(): JsonField = autoCollection /** - * Additional adjustments to be added to the subscription. (Only available for accounts that - * have migrated off of legacy subscription overrides) + * Returns the raw JSON value of [awsRegion]. + * + * Unlike [awsRegion], this method doesn't throw if the JSON field has an unexpected type. */ - fun addAdjustments(addAdjustments: List?) = apply { - body.addAdjustments(addAdjustments) - } + @Deprecated("deprecated") + @JsonProperty("aws_region") + @ExcludeMissing + fun _awsRegion(): JsonField = awsRegion - /** Alias for calling [Builder.addAdjustments] with `addAdjustments.orElse(null)`. */ - fun addAdjustments(addAdjustments: Optional>) = - addAdjustments(addAdjustments.getOrNull()) + /** + * Returns the raw JSON value of [billingCycleAnchorConfiguration]. + * + * Unlike [billingCycleAnchorConfiguration], this method doesn't throw if the JSON field has + * an unexpected type. + */ + @JsonProperty("billing_cycle_anchor_configuration") + @ExcludeMissing + fun _billingCycleAnchorConfiguration(): JsonField = + billingCycleAnchorConfiguration /** - * Sets [Builder.addAdjustments] to an arbitrary JSON value. + * Returns the raw JSON value of [couponRedemptionCode]. * - * You should usually call [Builder.addAdjustments] with a well-typed `List` - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. + * Unlike [couponRedemptionCode], this method doesn't throw if the JSON field has an + * unexpected type. */ - fun addAdjustments(addAdjustments: JsonField>) = apply { - body.addAdjustments(addAdjustments) - } + @JsonProperty("coupon_redemption_code") + @ExcludeMissing + fun _couponRedemptionCode(): JsonField = couponRedemptionCode /** - * Adds a single [AddAdjustment] to [addAdjustments]. + * Returns the raw JSON value of [creditsOverageRate]. * - * @throws IllegalStateException if the field was previously set to a non-list. + * Unlike [creditsOverageRate], this method doesn't throw if the JSON field has an + * unexpected type. */ - fun addAddAdjustment(addAdjustment: AddAdjustment) = apply { - body.addAddAdjustment(addAdjustment) - } + @Deprecated("deprecated") + @JsonProperty("credits_overage_rate") + @ExcludeMissing + fun _creditsOverageRate(): JsonField = creditsOverageRate /** - * Additional prices to be added to the subscription. (Only available for accounts that have - * migrated off of legacy subscription overrides) + * Returns the raw JSON value of [customerId]. + * + * Unlike [customerId], this method doesn't throw if the JSON field has an unexpected type. */ - fun addPrices(addPrices: List?) = apply { body.addPrices(addPrices) } + @JsonProperty("customer_id") + @ExcludeMissing + fun _customerId(): JsonField = customerId - /** Alias for calling [Builder.addPrices] with `addPrices.orElse(null)`. */ - fun addPrices(addPrices: Optional>) = addPrices(addPrices.getOrNull()) + /** + * Returns the raw JSON value of [defaultInvoiceMemo]. + * + * Unlike [defaultInvoiceMemo], this method doesn't throw if the JSON field has an + * unexpected type. + */ + @JsonProperty("default_invoice_memo") + @ExcludeMissing + fun _defaultInvoiceMemo(): JsonField = defaultInvoiceMemo /** - * Sets [Builder.addPrices] to an arbitrary JSON value. + * Returns the raw JSON value of [endDate]. * - * You should usually call [Builder.addPrices] with a well-typed `List` value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [endDate], this method doesn't throw if the JSON field has an unexpected type. */ - fun addPrices(addPrices: JsonField>) = apply { body.addPrices(addPrices) } + @JsonProperty("end_date") + @ExcludeMissing + fun _endDate(): JsonField = endDate /** - * Adds a single [AddPrice] to [addPrices]. + * Returns the raw JSON value of [externalCustomerId]. * - * @throws IllegalStateException if the field was previously set to a non-list. + * Unlike [externalCustomerId], this method doesn't throw if the JSON field has an + * unexpected type. */ - fun addAddPrice(addPrice: AddPrice) = apply { body.addAddPrice(addPrice) } + @JsonProperty("external_customer_id") + @ExcludeMissing + fun _externalCustomerId(): JsonField = externalCustomerId - fun alignBillingWithSubscriptionStartDate(alignBillingWithSubscriptionStartDate: Boolean) = - apply { - body.alignBillingWithSubscriptionStartDate(alignBillingWithSubscriptionStartDate) - } + /** + * Returns the raw JSON value of [externalMarketplace]. + * + * Unlike [externalMarketplace], this method doesn't throw if the JSON field has an + * unexpected type. + */ + @Deprecated("deprecated") + @JsonProperty("external_marketplace") + @ExcludeMissing + fun _externalMarketplace(): JsonField = externalMarketplace /** - * Sets [Builder.alignBillingWithSubscriptionStartDate] to an arbitrary JSON value. + * Returns the raw JSON value of [externalMarketplaceReportingId]. * - * You should usually call [Builder.alignBillingWithSubscriptionStartDate] with a well-typed - * [Boolean] value instead. This method is primarily for setting the field to an - * undocumented or not yet supported value. + * Unlike [externalMarketplaceReportingId], this method doesn't throw if the JSON field has + * an unexpected type. */ - fun alignBillingWithSubscriptionStartDate( - alignBillingWithSubscriptionStartDate: JsonField - ) = apply { - body.alignBillingWithSubscriptionStartDate(alignBillingWithSubscriptionStartDate) - } + @Deprecated("deprecated") + @JsonProperty("external_marketplace_reporting_id") + @ExcludeMissing + fun _externalMarketplaceReportingId(): JsonField = externalMarketplaceReportingId /** - * Determines whether issued invoices for this subscription will automatically be charged - * with the saved payment method on the due date. If not specified, this defaults to the - * behavior configured for this customer. + * Returns the raw JSON value of [externalPlanId]. + * + * Unlike [externalPlanId], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun autoCollection(autoCollection: Boolean?) = apply { body.autoCollection(autoCollection) } + @JsonProperty("external_plan_id") + @ExcludeMissing + fun _externalPlanId(): JsonField = externalPlanId /** - * Alias for [Builder.autoCollection]. + * Returns the raw JSON value of [filter]. * - * This unboxed primitive overload exists for backwards compatibility. + * Unlike [filter], this method doesn't throw if the JSON field has an unexpected type. */ - fun autoCollection(autoCollection: Boolean) = autoCollection(autoCollection as Boolean?) + @JsonProperty("filter") @ExcludeMissing fun _filter(): JsonField = filter - /** Alias for calling [Builder.autoCollection] with `autoCollection.orElse(null)`. */ - fun autoCollection(autoCollection: Optional) = - autoCollection(autoCollection.getOrNull()) + /** + * Returns the raw JSON value of [initialPhaseOrder]. + * + * Unlike [initialPhaseOrder], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("initial_phase_order") + @ExcludeMissing + fun _initialPhaseOrder(): JsonField = initialPhaseOrder /** - * Sets [Builder.autoCollection] to an arbitrary JSON value. + * Returns the raw JSON value of [invoicingThreshold]. * - * You should usually call [Builder.autoCollection] with a well-typed [Boolean] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [invoicingThreshold], this method doesn't throw if the JSON field has an + * unexpected type. */ - fun autoCollection(autoCollection: JsonField) = apply { - body.autoCollection(autoCollection) - } + @JsonProperty("invoicing_threshold") + @ExcludeMissing + fun _invoicingThreshold(): JsonField = invoicingThreshold - @Deprecated("deprecated") - fun awsRegion(awsRegion: String?) = apply { body.awsRegion(awsRegion) } + /** + * Returns the raw JSON value of [metadata]. + * + * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata - /** Alias for calling [Builder.awsRegion] with `awsRegion.orElse(null)`. */ - @Deprecated("deprecated") - fun awsRegion(awsRegion: Optional) = awsRegion(awsRegion.getOrNull()) + /** + * Returns the raw JSON value of [netTerms]. + * + * Unlike [netTerms], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("net_terms") @ExcludeMissing fun _netTerms(): JsonField = netTerms /** - * Sets [Builder.awsRegion] to an arbitrary JSON value. + * Returns the raw JSON value of [perCreditOverageAmount]. * - * You should usually call [Builder.awsRegion] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. + * Unlike [perCreditOverageAmount], this method doesn't throw if the JSON field has an + * unexpected type. */ @Deprecated("deprecated") - fun awsRegion(awsRegion: JsonField) = apply { body.awsRegion(awsRegion) } + @JsonProperty("per_credit_overage_amount") + @ExcludeMissing + fun _perCreditOverageAmount(): JsonField = perCreditOverageAmount - fun billingCycleAnchorConfiguration( - billingCycleAnchorConfiguration: BillingCycleAnchorConfiguration? - ) = apply { body.billingCycleAnchorConfiguration(billingCycleAnchorConfiguration) } + /** + * Returns the raw JSON value of [planId]. + * + * Unlike [planId], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("plan_id") @ExcludeMissing fun _planId(): JsonField = planId /** - * Alias for calling [Builder.billingCycleAnchorConfiguration] with - * `billingCycleAnchorConfiguration.orElse(null)`. + * Returns the raw JSON value of [planVersionNumber]. + * + * Unlike [planVersionNumber], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun billingCycleAnchorConfiguration( - billingCycleAnchorConfiguration: Optional - ) = billingCycleAnchorConfiguration(billingCycleAnchorConfiguration.getOrNull()) + @JsonProperty("plan_version_number") + @ExcludeMissing + fun _planVersionNumber(): JsonField = planVersionNumber /** - * Sets [Builder.billingCycleAnchorConfiguration] to an arbitrary JSON value. + * Returns the raw JSON value of [priceOverrides]. * - * You should usually call [Builder.billingCycleAnchorConfiguration] with a well-typed - * [BillingCycleAnchorConfiguration] value instead. This method is primarily for setting the - * field to an undocumented or not yet supported value. + * Unlike [priceOverrides], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun billingCycleAnchorConfiguration( - billingCycleAnchorConfiguration: JsonField - ) = apply { body.billingCycleAnchorConfiguration(billingCycleAnchorConfiguration) } + @Deprecated("deprecated") + @JsonProperty("price_overrides") + @ExcludeMissing + fun _priceOverrides(): JsonField> = priceOverrides /** - * Redemption code to be used for this subscription. If the coupon cannot be found by its - * redemption code, or cannot be redeemed, an error response will be returned and the - * subscription creation or plan change will not be scheduled. + * Returns the raw JSON value of [removeAdjustments]. + * + * Unlike [removeAdjustments], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun couponRedemptionCode(couponRedemptionCode: String?) = apply { - body.couponRedemptionCode(couponRedemptionCode) - } + @JsonProperty("remove_adjustments") + @ExcludeMissing + fun _removeAdjustments(): JsonField> = removeAdjustments /** - * Alias for calling [Builder.couponRedemptionCode] with - * `couponRedemptionCode.orElse(null)`. + * Returns the raw JSON value of [removePrices]. + * + * Unlike [removePrices], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun couponRedemptionCode(couponRedemptionCode: Optional) = - couponRedemptionCode(couponRedemptionCode.getOrNull()) + @JsonProperty("remove_prices") + @ExcludeMissing + fun _removePrices(): JsonField> = removePrices /** - * Sets [Builder.couponRedemptionCode] to an arbitrary JSON value. + * Returns the raw JSON value of [replaceAdjustments]. * - * You should usually call [Builder.couponRedemptionCode] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [replaceAdjustments], this method doesn't throw if the JSON field has an + * unexpected type. */ - fun couponRedemptionCode(couponRedemptionCode: JsonField) = apply { - body.couponRedemptionCode(couponRedemptionCode) - } + @JsonProperty("replace_adjustments") + @ExcludeMissing + fun _replaceAdjustments(): JsonField> = replaceAdjustments - @Deprecated("deprecated") - fun creditsOverageRate(creditsOverageRate: Double?) = apply { - body.creditsOverageRate(creditsOverageRate) - } + /** + * Returns the raw JSON value of [replacePrices]. + * + * Unlike [replacePrices], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("replace_prices") + @ExcludeMissing + fun _replacePrices(): JsonField> = replacePrices /** - * Alias for [Builder.creditsOverageRate]. + * Returns the raw JSON value of [startDate]. * - * This unboxed primitive overload exists for backwards compatibility. + * Unlike [startDate], this method doesn't throw if the JSON field has an unexpected type. */ - @Deprecated("deprecated") - fun creditsOverageRate(creditsOverageRate: Double) = - creditsOverageRate(creditsOverageRate as Double?) + @JsonProperty("start_date") + @ExcludeMissing + fun _startDate(): JsonField = startDate /** - * Alias for calling [Builder.creditsOverageRate] with `creditsOverageRate.orElse(null)`. + * Returns the raw JSON value of [trialDurationDays]. + * + * Unlike [trialDurationDays], this method doesn't throw if the JSON field has an unexpected + * type. */ - @Deprecated("deprecated") - fun creditsOverageRate(creditsOverageRate: Optional) = - creditsOverageRate(creditsOverageRate.getOrNull()) + @JsonProperty("trial_duration_days") + @ExcludeMissing + fun _trialDurationDays(): JsonField = trialDurationDays /** - * Sets [Builder.creditsOverageRate] to an arbitrary JSON value. + * Returns the raw JSON value of [usageCustomerIds]. * - * You should usually call [Builder.creditsOverageRate] with a well-typed [Double] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [usageCustomerIds], this method doesn't throw if the JSON field has an unexpected + * type. */ - @Deprecated("deprecated") - fun creditsOverageRate(creditsOverageRate: JsonField) = apply { - body.creditsOverageRate(creditsOverageRate) + @JsonProperty("usage_customer_ids") + @ExcludeMissing + fun _usageCustomerIds(): JsonField> = usageCustomerIds + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** Returns a mutable builder for constructing an instance of [Body]. */ + @JvmStatic fun builder() = Builder() } - fun customerId(customerId: String?) = apply { body.customerId(customerId) } + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var addAdjustments: JsonField>? = null + private var addPrices: JsonField>? = null + private var alignBillingWithSubscriptionStartDate: JsonField = JsonMissing.of() + private var autoCollection: JsonField = JsonMissing.of() + private var awsRegion: JsonField = JsonMissing.of() + private var billingCycleAnchorConfiguration: + JsonField = + JsonMissing.of() + private var couponRedemptionCode: JsonField = JsonMissing.of() + private var creditsOverageRate: JsonField = JsonMissing.of() + private var customerId: JsonField = JsonMissing.of() + private var defaultInvoiceMemo: JsonField = JsonMissing.of() + private var endDate: JsonField = JsonMissing.of() + private var externalCustomerId: JsonField = JsonMissing.of() + private var externalMarketplace: JsonField = JsonMissing.of() + private var externalMarketplaceReportingId: JsonField = JsonMissing.of() + private var externalPlanId: JsonField = JsonMissing.of() + private var filter: JsonField = JsonMissing.of() + private var initialPhaseOrder: JsonField = JsonMissing.of() + private var invoicingThreshold: JsonField = JsonMissing.of() + private var metadata: JsonField = JsonMissing.of() + private var netTerms: JsonField = JsonMissing.of() + private var perCreditOverageAmount: JsonField = JsonMissing.of() + private var planId: JsonField = JsonMissing.of() + private var planVersionNumber: JsonField = JsonMissing.of() + private var priceOverrides: JsonField>? = null + private var removeAdjustments: JsonField>? = null + private var removePrices: JsonField>? = null + private var replaceAdjustments: JsonField>? = null + private var replacePrices: JsonField>? = null + private var startDate: JsonField = JsonMissing.of() + private var trialDurationDays: JsonField = JsonMissing.of() + private var usageCustomerIds: JsonField>? = null + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + addAdjustments = body.addAdjustments.map { it.toMutableList() } + addPrices = body.addPrices.map { it.toMutableList() } + alignBillingWithSubscriptionStartDate = body.alignBillingWithSubscriptionStartDate + autoCollection = body.autoCollection + awsRegion = body.awsRegion + billingCycleAnchorConfiguration = body.billingCycleAnchorConfiguration + couponRedemptionCode = body.couponRedemptionCode + creditsOverageRate = body.creditsOverageRate + customerId = body.customerId + defaultInvoiceMemo = body.defaultInvoiceMemo + endDate = body.endDate + externalCustomerId = body.externalCustomerId + externalMarketplace = body.externalMarketplace + externalMarketplaceReportingId = body.externalMarketplaceReportingId + externalPlanId = body.externalPlanId + filter = body.filter + initialPhaseOrder = body.initialPhaseOrder + invoicingThreshold = body.invoicingThreshold + metadata = body.metadata + netTerms = body.netTerms + perCreditOverageAmount = body.perCreditOverageAmount + planId = body.planId + planVersionNumber = body.planVersionNumber + priceOverrides = body.priceOverrides.map { it.toMutableList() } + removeAdjustments = body.removeAdjustments.map { it.toMutableList() } + removePrices = body.removePrices.map { it.toMutableList() } + replaceAdjustments = body.replaceAdjustments.map { it.toMutableList() } + replacePrices = body.replacePrices.map { it.toMutableList() } + startDate = body.startDate + trialDurationDays = body.trialDurationDays + usageCustomerIds = body.usageCustomerIds.map { it.toMutableList() } + additionalProperties = body.additionalProperties.toMutableMap() + } + + /** + * Additional adjustments to be added to the subscription. (Only available for accounts + * that have migrated off of legacy subscription overrides) + */ + fun addAdjustments(addAdjustments: List?) = + addAdjustments(JsonField.ofNullable(addAdjustments)) + + /** Alias for calling [Builder.addAdjustments] with `addAdjustments.orElse(null)`. */ + fun addAdjustments(addAdjustments: Optional>) = + addAdjustments(addAdjustments.getOrNull()) + + /** + * Sets [Builder.addAdjustments] to an arbitrary JSON value. + * + * You should usually call [Builder.addAdjustments] with a well-typed + * `List` value instead. This method is primarily for setting the field + * to an undocumented or not yet supported value. + */ + fun addAdjustments(addAdjustments: JsonField>) = apply { + this.addAdjustments = addAdjustments.map { it.toMutableList() } + } + + /** + * Adds a single [AddAdjustment] to [addAdjustments]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addAddAdjustment(addAdjustment: AddAdjustment) = apply { + addAdjustments = + (addAdjustments ?: JsonField.of(mutableListOf())).also { + checkKnown("addAdjustments", it).add(addAdjustment) + } + } + + /** + * Additional prices to be added to the subscription. (Only available for accounts that + * have migrated off of legacy subscription overrides) + */ + fun addPrices(addPrices: List?) = addPrices(JsonField.ofNullable(addPrices)) + + /** Alias for calling [Builder.addPrices] with `addPrices.orElse(null)`. */ + fun addPrices(addPrices: Optional>) = addPrices(addPrices.getOrNull()) - /** Alias for calling [Builder.customerId] with `customerId.orElse(null)`. */ - fun customerId(customerId: Optional) = customerId(customerId.getOrNull()) + /** + * Sets [Builder.addPrices] to an arbitrary JSON value. + * + * You should usually call [Builder.addPrices] with a well-typed `List` value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun addPrices(addPrices: JsonField>) = apply { + this.addPrices = addPrices.map { it.toMutableList() } + } - /** - * Sets [Builder.customerId] to an arbitrary JSON value. - * - * You should usually call [Builder.customerId] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun customerId(customerId: JsonField) = apply { body.customerId(customerId) } + /** + * Adds a single [AddPrice] to [addPrices]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addAddPrice(addPrice: AddPrice) = apply { + addPrices = + (addPrices ?: JsonField.of(mutableListOf())).also { + checkKnown("addPrices", it).add(addPrice) + } + } - /** - * Determines the default memo on this subscription's invoices. Note that if this is not - * provided, it is determined by the plan configuration. - */ - fun defaultInvoiceMemo(defaultInvoiceMemo: String?) = apply { - body.defaultInvoiceMemo(defaultInvoiceMemo) - } + fun alignBillingWithSubscriptionStartDate( + alignBillingWithSubscriptionStartDate: Boolean + ) = + alignBillingWithSubscriptionStartDate( + JsonField.of(alignBillingWithSubscriptionStartDate) + ) - /** - * Alias for calling [Builder.defaultInvoiceMemo] with `defaultInvoiceMemo.orElse(null)`. - */ - fun defaultInvoiceMemo(defaultInvoiceMemo: Optional) = - defaultInvoiceMemo(defaultInvoiceMemo.getOrNull()) + /** + * Sets [Builder.alignBillingWithSubscriptionStartDate] to an arbitrary JSON value. + * + * You should usually call [Builder.alignBillingWithSubscriptionStartDate] with a + * well-typed [Boolean] value instead. This method is primarily for setting the field to + * an undocumented or not yet supported value. + */ + fun alignBillingWithSubscriptionStartDate( + alignBillingWithSubscriptionStartDate: JsonField + ) = apply { + this.alignBillingWithSubscriptionStartDate = alignBillingWithSubscriptionStartDate + } - /** - * Sets [Builder.defaultInvoiceMemo] to an arbitrary JSON value. - * - * You should usually call [Builder.defaultInvoiceMemo] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun defaultInvoiceMemo(defaultInvoiceMemo: JsonField) = apply { - body.defaultInvoiceMemo(defaultInvoiceMemo) - } + /** + * Determines whether issued invoices for this subscription will automatically be + * charged with the saved payment method on the due date. If not specified, this + * defaults to the behavior configured for this customer. + */ + fun autoCollection(autoCollection: Boolean?) = + autoCollection(JsonField.ofNullable(autoCollection)) - fun endDate(endDate: OffsetDateTime?) = apply { body.endDate(endDate) } + /** + * Alias for [Builder.autoCollection]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun autoCollection(autoCollection: Boolean) = autoCollection(autoCollection as Boolean?) - /** Alias for calling [Builder.endDate] with `endDate.orElse(null)`. */ - fun endDate(endDate: Optional) = endDate(endDate.getOrNull()) + /** Alias for calling [Builder.autoCollection] with `autoCollection.orElse(null)`. */ + fun autoCollection(autoCollection: Optional) = + autoCollection(autoCollection.getOrNull()) - /** - * Sets [Builder.endDate] to an arbitrary JSON value. - * - * You should usually call [Builder.endDate] with a well-typed [OffsetDateTime] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun endDate(endDate: JsonField) = apply { body.endDate(endDate) } + /** + * Sets [Builder.autoCollection] to an arbitrary JSON value. + * + * You should usually call [Builder.autoCollection] with a well-typed [Boolean] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun autoCollection(autoCollection: JsonField) = apply { + this.autoCollection = autoCollection + } - fun externalCustomerId(externalCustomerId: String?) = apply { - body.externalCustomerId(externalCustomerId) - } + @Deprecated("deprecated") + fun awsRegion(awsRegion: String?) = awsRegion(JsonField.ofNullable(awsRegion)) - /** - * Alias for calling [Builder.externalCustomerId] with `externalCustomerId.orElse(null)`. - */ - fun externalCustomerId(externalCustomerId: Optional) = - externalCustomerId(externalCustomerId.getOrNull()) + /** Alias for calling [Builder.awsRegion] with `awsRegion.orElse(null)`. */ + @Deprecated("deprecated") + fun awsRegion(awsRegion: Optional) = awsRegion(awsRegion.getOrNull()) - /** - * Sets [Builder.externalCustomerId] to an arbitrary JSON value. - * - * You should usually call [Builder.externalCustomerId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun externalCustomerId(externalCustomerId: JsonField) = apply { - body.externalCustomerId(externalCustomerId) - } + /** + * Sets [Builder.awsRegion] to an arbitrary JSON value. + * + * You should usually call [Builder.awsRegion] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + @Deprecated("deprecated") + fun awsRegion(awsRegion: JsonField) = apply { this.awsRegion = awsRegion } - @Deprecated("deprecated") - fun externalMarketplace(externalMarketplace: ExternalMarketplace?) = apply { - body.externalMarketplace(externalMarketplace) - } + fun billingCycleAnchorConfiguration( + billingCycleAnchorConfiguration: BillingCycleAnchorConfiguration? + ) = + billingCycleAnchorConfiguration( + JsonField.ofNullable(billingCycleAnchorConfiguration) + ) - /** - * Alias for calling [Builder.externalMarketplace] with `externalMarketplace.orElse(null)`. - */ - @Deprecated("deprecated") - fun externalMarketplace(externalMarketplace: Optional) = - externalMarketplace(externalMarketplace.getOrNull()) + /** + * Alias for calling [Builder.billingCycleAnchorConfiguration] with + * `billingCycleAnchorConfiguration.orElse(null)`. + */ + fun billingCycleAnchorConfiguration( + billingCycleAnchorConfiguration: Optional + ) = billingCycleAnchorConfiguration(billingCycleAnchorConfiguration.getOrNull()) - /** - * Sets [Builder.externalMarketplace] to an arbitrary JSON value. - * - * You should usually call [Builder.externalMarketplace] with a well-typed - * [ExternalMarketplace] value instead. This method is primarily for setting the field to an - * undocumented or not yet supported value. - */ - @Deprecated("deprecated") - fun externalMarketplace(externalMarketplace: JsonField) = apply { - body.externalMarketplace(externalMarketplace) - } + /** + * Sets [Builder.billingCycleAnchorConfiguration] to an arbitrary JSON value. + * + * You should usually call [Builder.billingCycleAnchorConfiguration] with a well-typed + * [BillingCycleAnchorConfiguration] value instead. This method is primarily for setting + * the field to an undocumented or not yet supported value. + */ + fun billingCycleAnchorConfiguration( + billingCycleAnchorConfiguration: JsonField + ) = apply { this.billingCycleAnchorConfiguration = billingCycleAnchorConfiguration } - @Deprecated("deprecated") - fun externalMarketplaceReportingId(externalMarketplaceReportingId: String?) = apply { - body.externalMarketplaceReportingId(externalMarketplaceReportingId) - } + /** + * Redemption code to be used for this subscription. If the coupon cannot be found by + * its redemption code, or cannot be redeemed, an error response will be returned and + * the subscription creation or plan change will not be scheduled. + */ + fun couponRedemptionCode(couponRedemptionCode: String?) = + couponRedemptionCode(JsonField.ofNullable(couponRedemptionCode)) - /** - * Alias for calling [Builder.externalMarketplaceReportingId] with - * `externalMarketplaceReportingId.orElse(null)`. - */ - @Deprecated("deprecated") - fun externalMarketplaceReportingId(externalMarketplaceReportingId: Optional) = - externalMarketplaceReportingId(externalMarketplaceReportingId.getOrNull()) + /** + * Alias for calling [Builder.couponRedemptionCode] with + * `couponRedemptionCode.orElse(null)`. + */ + fun couponRedemptionCode(couponRedemptionCode: Optional) = + couponRedemptionCode(couponRedemptionCode.getOrNull()) - /** - * Sets [Builder.externalMarketplaceReportingId] to an arbitrary JSON value. - * - * You should usually call [Builder.externalMarketplaceReportingId] with a well-typed - * [String] value instead. This method is primarily for setting the field to an undocumented - * or not yet supported value. - */ - @Deprecated("deprecated") - fun externalMarketplaceReportingId(externalMarketplaceReportingId: JsonField) = - apply { - body.externalMarketplaceReportingId(externalMarketplaceReportingId) + /** + * Sets [Builder.couponRedemptionCode] to an arbitrary JSON value. + * + * You should usually call [Builder.couponRedemptionCode] with a well-typed [String] + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + fun couponRedemptionCode(couponRedemptionCode: JsonField) = apply { + this.couponRedemptionCode = couponRedemptionCode } - /** - * The external_plan_id of the plan that the given subscription should be switched to. Note - * that either this property or `plan_id` must be specified. - */ - fun externalPlanId(externalPlanId: String?) = apply { body.externalPlanId(externalPlanId) } + @Deprecated("deprecated") + fun creditsOverageRate(creditsOverageRate: Double?) = + creditsOverageRate(JsonField.ofNullable(creditsOverageRate)) - /** Alias for calling [Builder.externalPlanId] with `externalPlanId.orElse(null)`. */ - fun externalPlanId(externalPlanId: Optional) = - externalPlanId(externalPlanId.getOrNull()) + /** + * Alias for [Builder.creditsOverageRate]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + @Deprecated("deprecated") + fun creditsOverageRate(creditsOverageRate: Double) = + creditsOverageRate(creditsOverageRate as Double?) - /** - * Sets [Builder.externalPlanId] to an arbitrary JSON value. - * - * You should usually call [Builder.externalPlanId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun externalPlanId(externalPlanId: JsonField) = apply { - body.externalPlanId(externalPlanId) - } + /** + * Alias for calling [Builder.creditsOverageRate] with + * `creditsOverageRate.orElse(null)`. + */ + @Deprecated("deprecated") + fun creditsOverageRate(creditsOverageRate: Optional) = + creditsOverageRate(creditsOverageRate.getOrNull()) - /** - * An additional filter to apply to usage queries. This filter must be expressed as a - * boolean [computed property](/extensibility/advanced-metrics#computed-properties). If - * null, usage queries will not include any additional filter. - */ - fun filter(filter: String?) = apply { body.filter(filter) } + /** + * Sets [Builder.creditsOverageRate] to an arbitrary JSON value. + * + * You should usually call [Builder.creditsOverageRate] with a well-typed [Double] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + @Deprecated("deprecated") + fun creditsOverageRate(creditsOverageRate: JsonField) = apply { + this.creditsOverageRate = creditsOverageRate + } - /** Alias for calling [Builder.filter] with `filter.orElse(null)`. */ - fun filter(filter: Optional) = filter(filter.getOrNull()) + fun customerId(customerId: String?) = customerId(JsonField.ofNullable(customerId)) - /** - * Sets [Builder.filter] to an arbitrary JSON value. - * - * You should usually call [Builder.filter] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun filter(filter: JsonField) = apply { body.filter(filter) } + /** Alias for calling [Builder.customerId] with `customerId.orElse(null)`. */ + fun customerId(customerId: Optional) = customerId(customerId.getOrNull()) - /** The phase of the plan to start with */ - fun initialPhaseOrder(initialPhaseOrder: Long?) = apply { - body.initialPhaseOrder(initialPhaseOrder) - } + /** + * Sets [Builder.customerId] to an arbitrary JSON value. + * + * You should usually call [Builder.customerId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun customerId(customerId: JsonField) = apply { this.customerId = customerId } - /** - * Alias for [Builder.initialPhaseOrder]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun initialPhaseOrder(initialPhaseOrder: Long) = - initialPhaseOrder(initialPhaseOrder as Long?) + /** + * Determines the default memo on this subscription's invoices. Note that if this is not + * provided, it is determined by the plan configuration. + */ + fun defaultInvoiceMemo(defaultInvoiceMemo: String?) = + defaultInvoiceMemo(JsonField.ofNullable(defaultInvoiceMemo)) - /** Alias for calling [Builder.initialPhaseOrder] with `initialPhaseOrder.orElse(null)`. */ - fun initialPhaseOrder(initialPhaseOrder: Optional) = - initialPhaseOrder(initialPhaseOrder.getOrNull()) + /** + * Alias for calling [Builder.defaultInvoiceMemo] with + * `defaultInvoiceMemo.orElse(null)`. + */ + fun defaultInvoiceMemo(defaultInvoiceMemo: Optional) = + defaultInvoiceMemo(defaultInvoiceMemo.getOrNull()) - /** - * Sets [Builder.initialPhaseOrder] to an arbitrary JSON value. - * - * You should usually call [Builder.initialPhaseOrder] with a well-typed [Long] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun initialPhaseOrder(initialPhaseOrder: JsonField) = apply { - body.initialPhaseOrder(initialPhaseOrder) - } + /** + * Sets [Builder.defaultInvoiceMemo] to an arbitrary JSON value. + * + * You should usually call [Builder.defaultInvoiceMemo] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun defaultInvoiceMemo(defaultInvoiceMemo: JsonField) = apply { + this.defaultInvoiceMemo = defaultInvoiceMemo + } - /** - * When this subscription's accrued usage reaches this threshold, an invoice will be issued - * for the subscription. If not specified, invoices will only be issued at the end of the - * billing period. - */ - fun invoicingThreshold(invoicingThreshold: String?) = apply { - body.invoicingThreshold(invoicingThreshold) - } + fun endDate(endDate: OffsetDateTime?) = endDate(JsonField.ofNullable(endDate)) - /** - * Alias for calling [Builder.invoicingThreshold] with `invoicingThreshold.orElse(null)`. - */ - fun invoicingThreshold(invoicingThreshold: Optional) = - invoicingThreshold(invoicingThreshold.getOrNull()) + /** Alias for calling [Builder.endDate] with `endDate.orElse(null)`. */ + fun endDate(endDate: Optional) = endDate(endDate.getOrNull()) - /** - * Sets [Builder.invoicingThreshold] to an arbitrary JSON value. - * - * You should usually call [Builder.invoicingThreshold] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun invoicingThreshold(invoicingThreshold: JsonField) = apply { - body.invoicingThreshold(invoicingThreshold) - } + /** + * Sets [Builder.endDate] to an arbitrary JSON value. + * + * You should usually call [Builder.endDate] with a well-typed [OffsetDateTime] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun endDate(endDate: JsonField) = apply { this.endDate = endDate } - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. - */ - fun metadata(metadata: Metadata?) = apply { body.metadata(metadata) } + fun externalCustomerId(externalCustomerId: String?) = + externalCustomerId(JsonField.ofNullable(externalCustomerId)) - /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ - fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) + /** + * Alias for calling [Builder.externalCustomerId] with + * `externalCustomerId.orElse(null)`. + */ + fun externalCustomerId(externalCustomerId: Optional) = + externalCustomerId(externalCustomerId.getOrNull()) - /** - * Sets [Builder.metadata] to an arbitrary JSON value. - * - * You should usually call [Builder.metadata] with a well-typed [Metadata] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. - */ - fun metadata(metadata: JsonField) = apply { body.metadata(metadata) } + /** + * Sets [Builder.externalCustomerId] to an arbitrary JSON value. + * + * You should usually call [Builder.externalCustomerId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun externalCustomerId(externalCustomerId: JsonField) = apply { + this.externalCustomerId = externalCustomerId + } - /** - * The net terms determines the difference between the invoice date and the issue date for - * the invoice. If you intend the invoice to be due on issue, set this to 0. If not - * provided, this defaults to the value specified in the plan. - */ - fun netTerms(netTerms: Long?) = apply { body.netTerms(netTerms) } + @Deprecated("deprecated") + fun externalMarketplace(externalMarketplace: ExternalMarketplace?) = + externalMarketplace(JsonField.ofNullable(externalMarketplace)) - /** - * Alias for [Builder.netTerms]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun netTerms(netTerms: Long) = netTerms(netTerms as Long?) + /** + * Alias for calling [Builder.externalMarketplace] with + * `externalMarketplace.orElse(null)`. + */ + @Deprecated("deprecated") + fun externalMarketplace(externalMarketplace: Optional) = + externalMarketplace(externalMarketplace.getOrNull()) - /** Alias for calling [Builder.netTerms] with `netTerms.orElse(null)`. */ - fun netTerms(netTerms: Optional) = netTerms(netTerms.getOrNull()) + /** + * Sets [Builder.externalMarketplace] to an arbitrary JSON value. + * + * You should usually call [Builder.externalMarketplace] with a well-typed + * [ExternalMarketplace] value instead. This method is primarily for setting the field + * to an undocumented or not yet supported value. + */ + @Deprecated("deprecated") + fun externalMarketplace(externalMarketplace: JsonField) = apply { + this.externalMarketplace = externalMarketplace + } - /** - * Sets [Builder.netTerms] to an arbitrary JSON value. - * - * You should usually call [Builder.netTerms] with a well-typed [Long] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun netTerms(netTerms: JsonField) = apply { body.netTerms(netTerms) } + @Deprecated("deprecated") + fun externalMarketplaceReportingId(externalMarketplaceReportingId: String?) = + externalMarketplaceReportingId(JsonField.ofNullable(externalMarketplaceReportingId)) - @Deprecated("deprecated") - fun perCreditOverageAmount(perCreditOverageAmount: Double?) = apply { - body.perCreditOverageAmount(perCreditOverageAmount) - } + /** + * Alias for calling [Builder.externalMarketplaceReportingId] with + * `externalMarketplaceReportingId.orElse(null)`. + */ + @Deprecated("deprecated") + fun externalMarketplaceReportingId(externalMarketplaceReportingId: Optional) = + externalMarketplaceReportingId(externalMarketplaceReportingId.getOrNull()) - /** - * Alias for [Builder.perCreditOverageAmount]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - @Deprecated("deprecated") - fun perCreditOverageAmount(perCreditOverageAmount: Double) = - perCreditOverageAmount(perCreditOverageAmount as Double?) + /** + * Sets [Builder.externalMarketplaceReportingId] to an arbitrary JSON value. + * + * You should usually call [Builder.externalMarketplaceReportingId] with a well-typed + * [String] value instead. This method is primarily for setting the field to an + * undocumented or not yet supported value. + */ + @Deprecated("deprecated") + fun externalMarketplaceReportingId(externalMarketplaceReportingId: JsonField) = + apply { + this.externalMarketplaceReportingId = externalMarketplaceReportingId + } + + /** + * The external_plan_id of the plan that the given subscription should be switched to. + * Note that either this property or `plan_id` must be specified. + */ + fun externalPlanId(externalPlanId: String?) = + externalPlanId(JsonField.ofNullable(externalPlanId)) + + /** Alias for calling [Builder.externalPlanId] with `externalPlanId.orElse(null)`. */ + fun externalPlanId(externalPlanId: Optional) = + externalPlanId(externalPlanId.getOrNull()) + + /** + * Sets [Builder.externalPlanId] to an arbitrary JSON value. + * + * You should usually call [Builder.externalPlanId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun externalPlanId(externalPlanId: JsonField) = apply { + this.externalPlanId = externalPlanId + } - /** - * Alias for calling [Builder.perCreditOverageAmount] with - * `perCreditOverageAmount.orElse(null)`. - */ - @Deprecated("deprecated") - fun perCreditOverageAmount(perCreditOverageAmount: Optional) = - perCreditOverageAmount(perCreditOverageAmount.getOrNull()) + /** + * An additional filter to apply to usage queries. This filter must be expressed as a + * boolean [computed property](/extensibility/advanced-metrics#computed-properties). If + * null, usage queries will not include any additional filter. + */ + fun filter(filter: String?) = filter(JsonField.ofNullable(filter)) - /** - * Sets [Builder.perCreditOverageAmount] to an arbitrary JSON value. - * - * You should usually call [Builder.perCreditOverageAmount] with a well-typed [Double] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - @Deprecated("deprecated") - fun perCreditOverageAmount(perCreditOverageAmount: JsonField) = apply { - body.perCreditOverageAmount(perCreditOverageAmount) - } + /** Alias for calling [Builder.filter] with `filter.orElse(null)`. */ + fun filter(filter: Optional) = filter(filter.getOrNull()) - /** - * The plan that the given subscription should be switched to. Note that either this - * property or `external_plan_id` must be specified. - */ - fun planId(planId: String?) = apply { body.planId(planId) } + /** + * Sets [Builder.filter] to an arbitrary JSON value. + * + * You should usually call [Builder.filter] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun filter(filter: JsonField) = apply { this.filter = filter } - /** Alias for calling [Builder.planId] with `planId.orElse(null)`. */ - fun planId(planId: Optional) = planId(planId.getOrNull()) + /** The phase of the plan to start with */ + fun initialPhaseOrder(initialPhaseOrder: Long?) = + initialPhaseOrder(JsonField.ofNullable(initialPhaseOrder)) - /** - * Sets [Builder.planId] to an arbitrary JSON value. - * - * You should usually call [Builder.planId] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun planId(planId: JsonField) = apply { body.planId(planId) } + /** + * Alias for [Builder.initialPhaseOrder]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun initialPhaseOrder(initialPhaseOrder: Long) = + initialPhaseOrder(initialPhaseOrder as Long?) - /** - * Specifies which version of the plan to subscribe to. If null, the default version will be - * used. - */ - fun planVersionNumber(planVersionNumber: Long?) = apply { - body.planVersionNumber(planVersionNumber) - } + /** + * Alias for calling [Builder.initialPhaseOrder] with `initialPhaseOrder.orElse(null)`. + */ + fun initialPhaseOrder(initialPhaseOrder: Optional) = + initialPhaseOrder(initialPhaseOrder.getOrNull()) - /** - * Alias for [Builder.planVersionNumber]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun planVersionNumber(planVersionNumber: Long) = - planVersionNumber(planVersionNumber as Long?) + /** + * Sets [Builder.initialPhaseOrder] to an arbitrary JSON value. + * + * You should usually call [Builder.initialPhaseOrder] with a well-typed [Long] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun initialPhaseOrder(initialPhaseOrder: JsonField) = apply { + this.initialPhaseOrder = initialPhaseOrder + } - /** Alias for calling [Builder.planVersionNumber] with `planVersionNumber.orElse(null)`. */ - fun planVersionNumber(planVersionNumber: Optional) = - planVersionNumber(planVersionNumber.getOrNull()) + /** + * When this subscription's accrued usage reaches this threshold, an invoice will be + * issued for the subscription. If not specified, invoices will only be issued at the + * end of the billing period. + */ + fun invoicingThreshold(invoicingThreshold: String?) = + invoicingThreshold(JsonField.ofNullable(invoicingThreshold)) - /** - * Sets [Builder.planVersionNumber] to an arbitrary JSON value. - * - * You should usually call [Builder.planVersionNumber] with a well-typed [Long] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun planVersionNumber(planVersionNumber: JsonField) = apply { - body.planVersionNumber(planVersionNumber) - } + /** + * Alias for calling [Builder.invoicingThreshold] with + * `invoicingThreshold.orElse(null)`. + */ + fun invoicingThreshold(invoicingThreshold: Optional) = + invoicingThreshold(invoicingThreshold.getOrNull()) - /** Optionally provide a list of overrides for prices on the plan */ - @Deprecated("deprecated") - fun priceOverrides(priceOverrides: List?) = apply { - body.priceOverrides(priceOverrides) - } + /** + * Sets [Builder.invoicingThreshold] to an arbitrary JSON value. + * + * You should usually call [Builder.invoicingThreshold] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun invoicingThreshold(invoicingThreshold: JsonField) = apply { + this.invoicingThreshold = invoicingThreshold + } - /** Alias for calling [Builder.priceOverrides] with `priceOverrides.orElse(null)`. */ - @Deprecated("deprecated") - fun priceOverrides(priceOverrides: Optional>) = - priceOverrides(priceOverrides.getOrNull()) + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by + * setting `metadata` to `null`. + */ + fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) - /** - * Sets [Builder.priceOverrides] to an arbitrary JSON value. - * - * You should usually call [Builder.priceOverrides] with a well-typed `List` - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - @Deprecated("deprecated") - fun priceOverrides(priceOverrides: JsonField>) = apply { - body.priceOverrides(priceOverrides) - } + /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ + fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) - /** - * Adds a single [JsonValue] to [priceOverrides]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - @Deprecated("deprecated") - fun addPriceOverride(priceOverride: JsonValue) = apply { - body.addPriceOverride(priceOverride) - } + /** + * Sets [Builder.metadata] to an arbitrary JSON value. + * + * You should usually call [Builder.metadata] with a well-typed [Metadata] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun metadata(metadata: JsonField) = apply { this.metadata = metadata } - /** - * Plan adjustments to be removed from the subscription. (Only available for accounts that - * have migrated off of legacy subscription overrides) - */ - fun removeAdjustments(removeAdjustments: List?) = apply { - body.removeAdjustments(removeAdjustments) - } + /** + * The net terms determines the difference between the invoice date and the issue date + * for the invoice. If you intend the invoice to be due on issue, set this to 0. If not + * provided, this defaults to the value specified in the plan. + */ + fun netTerms(netTerms: Long?) = netTerms(JsonField.ofNullable(netTerms)) - /** Alias for calling [Builder.removeAdjustments] with `removeAdjustments.orElse(null)`. */ - fun removeAdjustments(removeAdjustments: Optional>) = - removeAdjustments(removeAdjustments.getOrNull()) + /** + * Alias for [Builder.netTerms]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun netTerms(netTerms: Long) = netTerms(netTerms as Long?) - /** - * Sets [Builder.removeAdjustments] to an arbitrary JSON value. - * - * You should usually call [Builder.removeAdjustments] with a well-typed - * `List` value instead. This method is primarily for setting the field to - * an undocumented or not yet supported value. - */ - fun removeAdjustments(removeAdjustments: JsonField>) = apply { - body.removeAdjustments(removeAdjustments) - } + /** Alias for calling [Builder.netTerms] with `netTerms.orElse(null)`. */ + fun netTerms(netTerms: Optional) = netTerms(netTerms.getOrNull()) - /** - * Adds a single [RemoveAdjustment] to [removeAdjustments]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addRemoveAdjustment(removeAdjustment: RemoveAdjustment) = apply { - body.addRemoveAdjustment(removeAdjustment) - } + /** + * Sets [Builder.netTerms] to an arbitrary JSON value. + * + * You should usually call [Builder.netTerms] with a well-typed [Long] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun netTerms(netTerms: JsonField) = apply { this.netTerms = netTerms } - /** - * Plan prices to be removed from the subscription. (Only available for accounts that have - * migrated off of legacy subscription overrides) - */ - fun removePrices(removePrices: List?) = apply { - body.removePrices(removePrices) - } + @Deprecated("deprecated") + fun perCreditOverageAmount(perCreditOverageAmount: Double?) = + perCreditOverageAmount(JsonField.ofNullable(perCreditOverageAmount)) - /** Alias for calling [Builder.removePrices] with `removePrices.orElse(null)`. */ - fun removePrices(removePrices: Optional>) = - removePrices(removePrices.getOrNull()) + /** + * Alias for [Builder.perCreditOverageAmount]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + @Deprecated("deprecated") + fun perCreditOverageAmount(perCreditOverageAmount: Double) = + perCreditOverageAmount(perCreditOverageAmount as Double?) - /** - * Sets [Builder.removePrices] to an arbitrary JSON value. - * - * You should usually call [Builder.removePrices] with a well-typed `List` - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun removePrices(removePrices: JsonField>) = apply { - body.removePrices(removePrices) - } + /** + * Alias for calling [Builder.perCreditOverageAmount] with + * `perCreditOverageAmount.orElse(null)`. + */ + @Deprecated("deprecated") + fun perCreditOverageAmount(perCreditOverageAmount: Optional) = + perCreditOverageAmount(perCreditOverageAmount.getOrNull()) - /** - * Adds a single [RemovePrice] to [removePrices]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addRemovePrice(removePrice: RemovePrice) = apply { body.addRemovePrice(removePrice) } + /** + * Sets [Builder.perCreditOverageAmount] to an arbitrary JSON value. + * + * You should usually call [Builder.perCreditOverageAmount] with a well-typed [Double] + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + @Deprecated("deprecated") + fun perCreditOverageAmount(perCreditOverageAmount: JsonField) = apply { + this.perCreditOverageAmount = perCreditOverageAmount + } - /** - * Plan adjustments to be replaced with additional adjustments on the subscription. (Only - * available for accounts that have migrated off of legacy subscription overrides) - */ - fun replaceAdjustments(replaceAdjustments: List?) = apply { - body.replaceAdjustments(replaceAdjustments) - } + /** + * The plan that the given subscription should be switched to. Note that either this + * property or `external_plan_id` must be specified. + */ + fun planId(planId: String?) = planId(JsonField.ofNullable(planId)) - /** - * Alias for calling [Builder.replaceAdjustments] with `replaceAdjustments.orElse(null)`. - */ - fun replaceAdjustments(replaceAdjustments: Optional>) = - replaceAdjustments(replaceAdjustments.getOrNull()) + /** Alias for calling [Builder.planId] with `planId.orElse(null)`. */ + fun planId(planId: Optional) = planId(planId.getOrNull()) - /** - * Sets [Builder.replaceAdjustments] to an arbitrary JSON value. - * - * You should usually call [Builder.replaceAdjustments] with a well-typed - * `List` value instead. This method is primarily for setting the field - * to an undocumented or not yet supported value. - */ - fun replaceAdjustments(replaceAdjustments: JsonField>) = apply { - body.replaceAdjustments(replaceAdjustments) - } + /** + * Sets [Builder.planId] to an arbitrary JSON value. + * + * You should usually call [Builder.planId] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun planId(planId: JsonField) = apply { this.planId = planId } - /** - * Adds a single [ReplaceAdjustment] to [replaceAdjustments]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addReplaceAdjustment(replaceAdjustment: ReplaceAdjustment) = apply { - body.addReplaceAdjustment(replaceAdjustment) - } + /** + * Specifies which version of the plan to subscribe to. If null, the default version + * will be used. + */ + fun planVersionNumber(planVersionNumber: Long?) = + planVersionNumber(JsonField.ofNullable(planVersionNumber)) - /** - * Plan prices to be replaced with additional prices on the subscription. (Only available - * for accounts that have migrated off of legacy subscription overrides) - */ - fun replacePrices(replacePrices: List?) = apply { - body.replacePrices(replacePrices) - } + /** + * Alias for [Builder.planVersionNumber]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun planVersionNumber(planVersionNumber: Long) = + planVersionNumber(planVersionNumber as Long?) - /** Alias for calling [Builder.replacePrices] with `replacePrices.orElse(null)`. */ - fun replacePrices(replacePrices: Optional>) = - replacePrices(replacePrices.getOrNull()) + /** + * Alias for calling [Builder.planVersionNumber] with `planVersionNumber.orElse(null)`. + */ + fun planVersionNumber(planVersionNumber: Optional) = + planVersionNumber(planVersionNumber.getOrNull()) - /** - * Sets [Builder.replacePrices] to an arbitrary JSON value. - * - * You should usually call [Builder.replacePrices] with a well-typed `List` - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun replacePrices(replacePrices: JsonField>) = apply { - body.replacePrices(replacePrices) - } + /** + * Sets [Builder.planVersionNumber] to an arbitrary JSON value. + * + * You should usually call [Builder.planVersionNumber] with a well-typed [Long] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun planVersionNumber(planVersionNumber: JsonField) = apply { + this.planVersionNumber = planVersionNumber + } - /** - * Adds a single [ReplacePrice] to [replacePrices]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addReplacePrice(replacePrice: ReplacePrice) = apply { - body.addReplacePrice(replacePrice) - } + /** Optionally provide a list of overrides for prices on the plan */ + @Deprecated("deprecated") + fun priceOverrides(priceOverrides: List?) = + priceOverrides(JsonField.ofNullable(priceOverrides)) - fun startDate(startDate: OffsetDateTime?) = apply { body.startDate(startDate) } + /** Alias for calling [Builder.priceOverrides] with `priceOverrides.orElse(null)`. */ + @Deprecated("deprecated") + fun priceOverrides(priceOverrides: Optional>) = + priceOverrides(priceOverrides.getOrNull()) - /** Alias for calling [Builder.startDate] with `startDate.orElse(null)`. */ - fun startDate(startDate: Optional) = startDate(startDate.getOrNull()) + /** + * Sets [Builder.priceOverrides] to an arbitrary JSON value. + * + * You should usually call [Builder.priceOverrides] with a well-typed `List` + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + @Deprecated("deprecated") + fun priceOverrides(priceOverrides: JsonField>) = apply { + this.priceOverrides = priceOverrides.map { it.toMutableList() } + } - /** - * Sets [Builder.startDate] to an arbitrary JSON value. - * - * You should usually call [Builder.startDate] with a well-typed [OffsetDateTime] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun startDate(startDate: JsonField) = apply { body.startDate(startDate) } + /** + * Adds a single [JsonValue] to [priceOverrides]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + @Deprecated("deprecated") + fun addPriceOverride(priceOverride: JsonValue) = apply { + priceOverrides = + (priceOverrides ?: JsonField.of(mutableListOf())).also { + checkKnown("priceOverrides", it).add(priceOverride) + } + } - /** - * The duration of the trial period in days. If not provided, this defaults to the value - * specified in the plan. If `0` is provided, the trial on the plan will be skipped. - */ - fun trialDurationDays(trialDurationDays: Long?) = apply { - body.trialDurationDays(trialDurationDays) - } + /** + * Plan adjustments to be removed from the subscription. (Only available for accounts + * that have migrated off of legacy subscription overrides) + */ + fun removeAdjustments(removeAdjustments: List?) = + removeAdjustments(JsonField.ofNullable(removeAdjustments)) - /** - * Alias for [Builder.trialDurationDays]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun trialDurationDays(trialDurationDays: Long) = - trialDurationDays(trialDurationDays as Long?) + /** + * Alias for calling [Builder.removeAdjustments] with `removeAdjustments.orElse(null)`. + */ + fun removeAdjustments(removeAdjustments: Optional>) = + removeAdjustments(removeAdjustments.getOrNull()) - /** Alias for calling [Builder.trialDurationDays] with `trialDurationDays.orElse(null)`. */ - fun trialDurationDays(trialDurationDays: Optional) = - trialDurationDays(trialDurationDays.getOrNull()) + /** + * Sets [Builder.removeAdjustments] to an arbitrary JSON value. + * + * You should usually call [Builder.removeAdjustments] with a well-typed + * `List` value instead. This method is primarily for setting the + * field to an undocumented or not yet supported value. + */ + fun removeAdjustments(removeAdjustments: JsonField>) = apply { + this.removeAdjustments = removeAdjustments.map { it.toMutableList() } + } - /** - * Sets [Builder.trialDurationDays] to an arbitrary JSON value. - * - * You should usually call [Builder.trialDurationDays] with a well-typed [Long] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun trialDurationDays(trialDurationDays: JsonField) = apply { - body.trialDurationDays(trialDurationDays) - } + /** + * Adds a single [RemoveAdjustment] to [removeAdjustments]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addRemoveAdjustment(removeAdjustment: RemoveAdjustment) = apply { + removeAdjustments = + (removeAdjustments ?: JsonField.of(mutableListOf())).also { + checkKnown("removeAdjustments", it).add(removeAdjustment) + } + } - /** - * A list of customer IDs whose usage events will be aggregated and billed under this - * subscription. By default, a subscription only considers usage events associated with its - * attached customer's customer_id. When usage_customer_ids is provided, the subscription - * includes usage events from the specified customers only. Provided usage_customer_ids must - * be either the customer for this subscription itself, or any of that customer's children. - */ - fun usageCustomerIds(usageCustomerIds: List?) = apply { - body.usageCustomerIds(usageCustomerIds) - } + /** + * Plan prices to be removed from the subscription. (Only available for accounts that + * have migrated off of legacy subscription overrides) + */ + fun removePrices(removePrices: List?) = + removePrices(JsonField.ofNullable(removePrices)) - /** Alias for calling [Builder.usageCustomerIds] with `usageCustomerIds.orElse(null)`. */ - fun usageCustomerIds(usageCustomerIds: Optional>) = - usageCustomerIds(usageCustomerIds.getOrNull()) + /** Alias for calling [Builder.removePrices] with `removePrices.orElse(null)`. */ + fun removePrices(removePrices: Optional>) = + removePrices(removePrices.getOrNull()) + + /** + * Sets [Builder.removePrices] to an arbitrary JSON value. + * + * You should usually call [Builder.removePrices] with a well-typed `List` + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + fun removePrices(removePrices: JsonField>) = apply { + this.removePrices = removePrices.map { it.toMutableList() } + } - /** - * Sets [Builder.usageCustomerIds] to an arbitrary JSON value. - * - * You should usually call [Builder.usageCustomerIds] with a well-typed `List` value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun usageCustomerIds(usageCustomerIds: JsonField>) = apply { - body.usageCustomerIds(usageCustomerIds) - } + /** + * Adds a single [RemovePrice] to [removePrices]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addRemovePrice(removePrice: RemovePrice) = apply { + removePrices = + (removePrices ?: JsonField.of(mutableListOf())).also { + checkKnown("removePrices", it).add(removePrice) + } + } - /** - * Adds a single [String] to [usageCustomerIds]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addUsageCustomerId(usageCustomerId: String) = apply { - body.addUsageCustomerId(usageCustomerId) - } + /** + * Plan adjustments to be replaced with additional adjustments on the subscription. + * (Only available for accounts that have migrated off of legacy subscription overrides) + */ + fun replaceAdjustments(replaceAdjustments: List?) = + replaceAdjustments(JsonField.ofNullable(replaceAdjustments)) - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { - body.additionalProperties(additionalBodyProperties) - } + /** + * Alias for calling [Builder.replaceAdjustments] with + * `replaceAdjustments.orElse(null)`. + */ + fun replaceAdjustments(replaceAdjustments: Optional>) = + replaceAdjustments(replaceAdjustments.getOrNull()) - fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - body.putAdditionalProperty(key, value) - } + /** + * Sets [Builder.replaceAdjustments] to an arbitrary JSON value. + * + * You should usually call [Builder.replaceAdjustments] with a well-typed + * `List` value instead. This method is primarily for setting the + * field to an undocumented or not yet supported value. + */ + fun replaceAdjustments(replaceAdjustments: JsonField>) = apply { + this.replaceAdjustments = replaceAdjustments.map { it.toMutableList() } + } - fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = - apply { - body.putAllAdditionalProperties(additionalBodyProperties) + /** + * Adds a single [ReplaceAdjustment] to [replaceAdjustments]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addReplaceAdjustment(replaceAdjustment: ReplaceAdjustment) = apply { + replaceAdjustments = + (replaceAdjustments ?: JsonField.of(mutableListOf())).also { + checkKnown("replaceAdjustments", it).add(replaceAdjustment) + } } - fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + /** + * Plan prices to be replaced with additional prices on the subscription. (Only + * available for accounts that have migrated off of legacy subscription overrides) + */ + fun replacePrices(replacePrices: List?) = + replacePrices(JsonField.ofNullable(replacePrices)) - fun removeAllAdditionalBodyProperties(keys: Set) = apply { - body.removeAllAdditionalProperties(keys) - } + /** Alias for calling [Builder.replacePrices] with `replacePrices.orElse(null)`. */ + fun replacePrices(replacePrices: Optional>) = + replacePrices(replacePrices.getOrNull()) - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** + * Sets [Builder.replacePrices] to an arbitrary JSON value. + * + * You should usually call [Builder.replacePrices] with a well-typed + * `List` value instead. This method is primarily for setting the field to + * an undocumented or not yet supported value. + */ + fun replacePrices(replacePrices: JsonField>) = apply { + this.replacePrices = replacePrices.map { it.toMutableList() } + } - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** + * Adds a single [ReplacePrice] to [replacePrices]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addReplacePrice(replacePrice: ReplacePrice) = apply { + replacePrices = + (replacePrices ?: JsonField.of(mutableListOf())).also { + checkKnown("replacePrices", it).add(replacePrice) + } + } - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } + fun startDate(startDate: OffsetDateTime?) = startDate(JsonField.ofNullable(startDate)) - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } + /** Alias for calling [Builder.startDate] with `startDate.orElse(null)`. */ + fun startDate(startDate: Optional) = startDate(startDate.getOrNull()) - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** + * Sets [Builder.startDate] to an arbitrary JSON value. + * + * You should usually call [Builder.startDate] with a well-typed [OffsetDateTime] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun startDate(startDate: JsonField) = apply { + this.startDate = startDate + } - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** + * The duration of the trial period in days. If not provided, this defaults to the value + * specified in the plan. If `0` is provided, the trial on the plan will be skipped. + */ + fun trialDurationDays(trialDurationDays: Long?) = + trialDurationDays(JsonField.ofNullable(trialDurationDays)) - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } + /** + * Alias for [Builder.trialDurationDays]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun trialDurationDays(trialDurationDays: Long) = + trialDurationDays(trialDurationDays as Long?) - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } + /** + * Alias for calling [Builder.trialDurationDays] with `trialDurationDays.orElse(null)`. + */ + fun trialDurationDays(trialDurationDays: Optional) = + trialDurationDays(trialDurationDays.getOrNull()) - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** + * Sets [Builder.trialDurationDays] to an arbitrary JSON value. + * + * You should usually call [Builder.trialDurationDays] with a well-typed [Long] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun trialDurationDays(trialDurationDays: JsonField) = apply { + this.trialDurationDays = trialDurationDays + } - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** + * A list of customer IDs whose usage events will be aggregated and billed under this + * subscription. By default, a subscription only considers usage events associated with + * its attached customer's customer_id. When usage_customer_ids is provided, the + * subscription includes usage events from the specified customers only. Provided + * usage_customer_ids must be either the customer for this subscription itself, or any + * of that customer's children. + */ + fun usageCustomerIds(usageCustomerIds: List?) = + usageCustomerIds(JsonField.ofNullable(usageCustomerIds)) - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + /** + * Alias for calling [Builder.usageCustomerIds] with `usageCustomerIds.orElse(null)`. + */ + fun usageCustomerIds(usageCustomerIds: Optional>) = + usageCustomerIds(usageCustomerIds.getOrNull()) - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } + /** + * Sets [Builder.usageCustomerIds] to an arbitrary JSON value. + * + * You should usually call [Builder.usageCustomerIds] with a well-typed `List` + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + fun usageCustomerIds(usageCustomerIds: JsonField>) = apply { + this.usageCustomerIds = usageCustomerIds.map { it.toMutableList() } + } - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + /** + * Adds a single [String] to [usageCustomerIds]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addUsageCustomerId(usageCustomerId: String) = apply { + usageCustomerIds = + (usageCustomerIds ?: JsonField.of(mutableListOf())).also { + checkKnown("usageCustomerIds", it).add(usageCustomerId) + } + } - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) - } + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) } - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + */ + fun build(): Body = + Body( + (addAdjustments ?: JsonMissing.of()).map { it.toImmutable() }, + (addPrices ?: JsonMissing.of()).map { it.toImmutable() }, + alignBillingWithSubscriptionStartDate, + autoCollection, + awsRegion, + billingCycleAnchorConfiguration, + couponRedemptionCode, + creditsOverageRate, + customerId, + defaultInvoiceMemo, + endDate, + externalCustomerId, + externalMarketplace, + externalMarketplaceReportingId, + externalPlanId, + filter, + initialPhaseOrder, + invoicingThreshold, + metadata, + netTerms, + perCreditOverageAmount, + planId, + planVersionNumber, + (priceOverrides ?: JsonMissing.of()).map { it.toImmutable() }, + (removeAdjustments ?: JsonMissing.of()).map { it.toImmutable() }, + (removePrices ?: JsonMissing.of()).map { it.toImmutable() }, + (replaceAdjustments ?: JsonMissing.of()).map { it.toImmutable() }, + (replacePrices ?: JsonMissing.of()).map { it.toImmutable() }, + startDate, + trialDurationDays, + (usageCustomerIds ?: JsonMissing.of()).map { it.toImmutable() }, + additionalProperties.toMutableMap(), + ) } - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } + private var validated: Boolean = false - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + fun validate(): Body = apply { + if (validated) { + return@apply + } + + addAdjustments().ifPresent { it.forEach { it.validate() } } + addPrices().ifPresent { it.forEach { it.validate() } } + alignBillingWithSubscriptionStartDate() + autoCollection() + awsRegion() + billingCycleAnchorConfiguration().ifPresent { it.validate() } + couponRedemptionCode() + creditsOverageRate() + customerId() + defaultInvoiceMemo() + endDate() + externalCustomerId() + externalMarketplace() + externalMarketplaceReportingId() + externalPlanId() + filter() + initialPhaseOrder() + invoicingThreshold() + metadata().ifPresent { it.validate() } + netTerms() + perCreditOverageAmount() + planId() + planVersionNumber() + priceOverrides() + removeAdjustments().ifPresent { it.forEach { it.validate() } } + removePrices().ifPresent { it.forEach { it.validate() } } + replaceAdjustments().ifPresent { it.forEach { it.validate() } } + replacePrices().ifPresent { it.forEach { it.validate() } } + startDate() + trialDurationDays() + usageCustomerIds() + validated = true } - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + override fun equals(other: Any?): Boolean { + if (this === other) { + return true } - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } - - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) + return /* spotless:off */ other is Body && addAdjustments == other.addAdjustments && addPrices == other.addPrices && alignBillingWithSubscriptionStartDate == other.alignBillingWithSubscriptionStartDate && autoCollection == other.autoCollection && awsRegion == other.awsRegion && billingCycleAnchorConfiguration == other.billingCycleAnchorConfiguration && couponRedemptionCode == other.couponRedemptionCode && creditsOverageRate == other.creditsOverageRate && customerId == other.customerId && defaultInvoiceMemo == other.defaultInvoiceMemo && endDate == other.endDate && externalCustomerId == other.externalCustomerId && externalMarketplace == other.externalMarketplace && externalMarketplaceReportingId == other.externalMarketplaceReportingId && externalPlanId == other.externalPlanId && filter == other.filter && initialPhaseOrder == other.initialPhaseOrder && invoicingThreshold == other.invoicingThreshold && metadata == other.metadata && netTerms == other.netTerms && perCreditOverageAmount == other.perCreditOverageAmount && planId == other.planId && planVersionNumber == other.planVersionNumber && priceOverrides == other.priceOverrides && removeAdjustments == other.removeAdjustments && removePrices == other.removePrices && replaceAdjustments == other.replaceAdjustments && replacePrices == other.replacePrices && startDate == other.startDate && trialDurationDays == other.trialDurationDays && usageCustomerIds == other.usageCustomerIds && additionalProperties == other.additionalProperties /* spotless:on */ } - /** - * Returns an immutable instance of [SubscriptionCreateParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - */ - fun build(): SubscriptionCreateParams = - SubscriptionCreateParams( - body.build(), - additionalHeaders.build(), - additionalQueryParams.build(), - ) + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(addAdjustments, addPrices, alignBillingWithSubscriptionStartDate, autoCollection, awsRegion, billingCycleAnchorConfiguration, couponRedemptionCode, creditsOverageRate, customerId, defaultInvoiceMemo, endDate, externalCustomerId, externalMarketplace, externalMarketplaceReportingId, externalPlanId, filter, initialPhaseOrder, invoicingThreshold, metadata, netTerms, perCreditOverageAmount, planId, planVersionNumber, priceOverrides, removeAdjustments, removePrices, replaceAdjustments, replacePrices, startDate, trialDurationDays, usageCustomerIds, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{addAdjustments=$addAdjustments, addPrices=$addPrices, alignBillingWithSubscriptionStartDate=$alignBillingWithSubscriptionStartDate, autoCollection=$autoCollection, awsRegion=$awsRegion, billingCycleAnchorConfiguration=$billingCycleAnchorConfiguration, couponRedemptionCode=$couponRedemptionCode, creditsOverageRate=$creditsOverageRate, customerId=$customerId, defaultInvoiceMemo=$defaultInvoiceMemo, endDate=$endDate, externalCustomerId=$externalCustomerId, externalMarketplace=$externalMarketplace, externalMarketplaceReportingId=$externalMarketplaceReportingId, externalPlanId=$externalPlanId, filter=$filter, initialPhaseOrder=$initialPhaseOrder, invoicingThreshold=$invoicingThreshold, metadata=$metadata, netTerms=$netTerms, perCreditOverageAmount=$perCreditOverageAmount, planId=$planId, planVersionNumber=$planVersionNumber, priceOverrides=$priceOverrides, removeAdjustments=$removeAdjustments, removePrices=$removePrices, replaceAdjustments=$replaceAdjustments, replacePrices=$replacePrices, startDate=$startDate, trialDurationDays=$trialDurationDays, usageCustomerIds=$usageCustomerIds, additionalProperties=$additionalProperties}" } - @NoAutoDetect class AddAdjustment - @JsonCreator private constructor( - @JsonProperty("adjustment") - @ExcludeMissing - private val adjustment: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustment: JsonField, + private val endDate: JsonField, + private val planPhaseOrder: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment") + @ExcludeMissing + adjustment: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(adjustment, endDate, planPhaseOrder, startDate, mutableMapOf()) + /** * The definition of a new adjustment to create and add to the subscription. * @@ -3555,23 +3623,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AddAdjustment = apply { - if (validated) { - return@apply - } - - adjustment().validate() - endDate() - planPhaseOrder() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3751,10 +3811,24 @@ private constructor( endDate, planPhaseOrder, startDate, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AddAdjustment = apply { + if (validated) { + return@apply + } + + adjustment().validate() + endDate() + planPhaseOrder() + startDate() + validated = true + } + /** The definition of a new adjustment to create and add to the subscription. */ @JsonDeserialize(using = Adjustment.Deserializer::class) @JsonSerialize(using = Adjustment.Serializer::class) @@ -3999,26 +4073,37 @@ private constructor( } } - @NoAutoDetect class NewPercentageDiscount - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val percentageDiscount: JsonField, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + appliesToPriceIds, + percentageDiscount, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4094,23 +4179,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPercentageDiscount = apply { - if (validated) { - return@apply - } - - adjustmentType() - appliesToPriceIds() - percentageDiscount() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4267,10 +4344,24 @@ private constructor( }, checkRequired("percentageDiscount", percentageDiscount), isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPercentageDiscount = apply { + if (validated) { + return@apply + } + + adjustmentType() + appliesToPriceIds() + percentageDiscount() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4391,26 +4482,37 @@ private constructor( "NewPercentageDiscount{adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, percentageDiscount=$percentageDiscount, isInvoiceLevel=$isInvoiceLevel, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewUsageDiscount - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val usageDiscount: JsonField, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + appliesToPriceIds, + usageDiscount, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4485,23 +4587,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewUsageDiscount = apply { - if (validated) { - return@apply - } - - adjustmentType() - appliesToPriceIds() - usageDiscount() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4656,10 +4750,24 @@ private constructor( }, checkRequired("usageDiscount", usageDiscount), isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewUsageDiscount = apply { + if (validated) { + return@apply + } + + adjustmentType() + appliesToPriceIds() + usageDiscount() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4780,26 +4888,37 @@ private constructor( "NewUsageDiscount{adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, usageDiscount=$usageDiscount, isInvoiceLevel=$isInvoiceLevel, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewAmountDiscount - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + amountDiscount, + appliesToPriceIds, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4874,23 +4993,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewAmountDiscount = apply { - if (validated) { - return@apply - } - - adjustmentType() - amountDiscount() - appliesToPriceIds() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5046,10 +5157,24 @@ private constructor( it.toImmutable() }, isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewAmountDiscount = apply { + if (validated) { + return@apply + } + + adjustmentType() + amountDiscount() + appliesToPriceIds() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -5170,29 +5295,42 @@ private constructor( "NewAmountDiscount{adjustmentType=$adjustmentType, amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewMinimum - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val itemId: JsonField, + private val minimumAmount: JsonField, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + appliesToPriceIds, + itemId, + minimumAmount, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -5284,24 +5422,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewMinimum = apply { - if (validated) { - return@apply - } - - adjustmentType() - appliesToPriceIds() - itemId() - minimumAmount() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5472,10 +5601,25 @@ private constructor( checkRequired("itemId", itemId), checkRequired("minimumAmount", minimumAmount), isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewMinimum = apply { + if (validated) { + return@apply + } + + adjustmentType() + appliesToPriceIds() + itemId() + minimumAmount() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -5596,26 +5740,37 @@ private constructor( "NewMinimum{adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, itemId=$itemId, minimumAmount=$minimumAmount, isInvoiceLevel=$isInvoiceLevel, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewMaximum - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + appliesToPriceIds, + maximumAmount, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -5690,23 +5845,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewMaximum = apply { - if (validated) { - return@apply - } - - adjustmentType() - appliesToPriceIds() - maximumAmount() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5860,10 +6007,24 @@ private constructor( }, checkRequired("maximumAmount", maximumAmount), isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewMaximum = apply { + if (validated) { + return@apply + } + + adjustmentType() + appliesToPriceIds() + maximumAmount() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6003,44 +6164,63 @@ private constructor( "AddAdjustment{adjustment=$adjustment, endDate=$endDate, planPhaseOrder=$planPhaseOrder, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class AddPrice - @JsonCreator private constructor( - @JsonProperty("allocation_price") - @ExcludeMissing - private val allocationPrice: JsonField = JsonMissing.of(), - @JsonProperty("discounts") - @ExcludeMissing - private val discounts: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price") - @ExcludeMissing - private val price: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allocationPrice: JsonField, + private val discounts: JsonField>, + private val endDate: JsonField, + private val externalPriceId: JsonField, + private val maximumAmount: JsonField, + private val minimumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val price: JsonField, + private val priceId: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allocation_price") + @ExcludeMissing + allocationPrice: JsonField = JsonMissing.of(), + @JsonProperty("discounts") + @ExcludeMissing + discounts: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + allocationPrice, + discounts, + endDate, + externalPriceId, + maximumAmount, + minimumAmount, + planPhaseOrder, + price, + priceId, + startDate, + mutableMapOf(), + ) + /** * The definition of a new allocation price to create and add to the subscription. * @@ -6230,29 +6410,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AddPrice = apply { - if (validated) { - return@apply - } - - allocationPrice().ifPresent { it.validate() } - discounts().ifPresent { it.forEach { it.validate() } } - endDate() - externalPriceId() - maximumAmount() - minimumAmount() - planPhaseOrder() - price().ifPresent { it.validate() } - priceId() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6786,31 +6952,56 @@ private constructor( price, priceId, startDate, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AddPrice = apply { + if (validated) { + return@apply + } + + allocationPrice().ifPresent { it.validate() } + discounts().ifPresent { it.forEach { it.validate() } } + endDate() + externalPriceId() + maximumAmount() + minimumAmount() + planPhaseOrder() + price().ifPresent { it.validate() } + priceId() + startDate() + validated = true + } + /** The definition of a new allocation price to create and add to the subscription. */ - @NoAutoDetect class AllocationPrice - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("expires_at_end_of_cadence") - @ExcludeMissing - private val expiresAtEndOfCadence: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val cadence: JsonField, + private val currency: JsonField, + private val expiresAtEndOfCadence: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("expires_at_end_of_cadence") + @ExcludeMissing + expiresAtEndOfCadence: JsonField = JsonMissing.of(), + ) : this(amount, cadence, currency, expiresAtEndOfCadence, mutableMapOf()) + /** * An amount of the currency to allocate to the customer at the specified cadence. * @@ -6882,23 +7073,15 @@ private constructor( @ExcludeMissing fun _expiresAtEndOfCadence(): JsonField = expiresAtEndOfCadence + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AllocationPrice = apply { - if (validated) { - return@apply - } - - amount() - cadence() - currency() - expiresAtEndOfCadence() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7038,10 +7221,24 @@ private constructor( checkRequired("cadence", cadence), checkRequired("currency", currency), checkRequired("expiresAtEndOfCadence", expiresAtEndOfCadence), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AllocationPrice = apply { + if (validated) { + return@apply + } + + amount() + cadence() + currency() + expiresAtEndOfCadence() + validated = true + } + /** The cadence at which to allocate the amount to the customer. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -7189,26 +7386,37 @@ private constructor( "AllocationPrice{amount=$amount, cadence=$cadence, currency=$currency, expiresAtEndOfCadence=$expiresAtEndOfCadence, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Discount - @JsonCreator private constructor( - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val discountType: JsonField, + private val amountDiscount: JsonField, + private val percentageDiscount: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + discountType, + amountDiscount, + percentageDiscount, + usageDiscount, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -7284,23 +7492,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Discount = apply { - if (validated) { - return@apply - } - - discountType() - amountDiscount() - percentageDiscount() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7472,10 +7672,24 @@ private constructor( amountDiscount, percentageDiscount, usageDiscount, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Discount = apply { + if (validated) { + return@apply + } + + discountType() + amountDiscount() + percentageDiscount() + usageDiscount() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -8895,64 +9109,99 @@ private constructor( } } - @NoAutoDetect class NewSubscriptionUnitPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("unit_config") - @ExcludeMissing - private val unitConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val unitConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("unit_config") + @ExcludeMissing + unitConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + unitConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -9264,35 +9513,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionUnitPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - unitConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9764,10 +9993,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionUnitPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + unitConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -10000,17 +10255,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitConfig - @JsonCreator private constructor( - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of() + ) : this(unitAmount, mutableMapOf()) + /** * Rate per unit of usage * @@ -10030,20 +10287,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitConfig = apply { - if (validated) { - return@apply - } - - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10124,10 +10376,21 @@ private constructor( fun build(): UnitConfig = UnitConfig( checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UnitConfig = apply { + if (validated) { + return@apply + } + + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -10150,20 +10413,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -10202,21 +10468,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10318,10 +10578,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -10454,20 +10726,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -10506,21 +10781,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10623,10 +10892,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -10760,28 +11041,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -10828,7 +11104,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -10866,64 +11152,99 @@ private constructor( "NewSubscriptionUnitPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, unitConfig=$unitConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("package_config") - @ExcludeMissing - private val packageConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val packageConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("package_config") + @ExcludeMissing + packageConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + packageConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -11235,35 +11556,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - packageConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -11737,10 +12038,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + packageConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -11973,20 +12300,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class PackageConfig - @JsonCreator private constructor( - @JsonProperty("package_amount") - @ExcludeMissing - private val packageAmount: JsonField = JsonMissing.of(), - @JsonProperty("package_size") - @ExcludeMissing - private val packageSize: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val packageAmount: JsonField, + private val packageSize: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("package_amount") + @ExcludeMissing + packageAmount: JsonField = JsonMissing.of(), + @JsonProperty("package_size") + @ExcludeMissing + packageSize: JsonField = JsonMissing.of(), + ) : this(packageAmount, packageSize, mutableMapOf()) + /** * A currency amount to rate usage by * @@ -12026,21 +12356,15 @@ private constructor( @ExcludeMissing fun _packageSize(): JsonField = packageSize + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PackageConfig = apply { - if (validated) { - return@apply - } - - packageAmount() - packageSize() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12145,10 +12469,22 @@ private constructor( PackageConfig( checkRequired("packageAmount", packageAmount), checkRequired("packageSize", packageSize), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PackageConfig = apply { + if (validated) { + return@apply + } + + packageAmount() + packageSize() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -12171,20 +12507,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -12223,21 +12562,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12339,10 +12672,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -12475,20 +12820,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -12527,21 +12875,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12644,10 +12986,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -12781,28 +13135,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -12849,7 +13198,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -12887,64 +13246,99 @@ private constructor( "NewSubscriptionPackagePrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, packageConfig=$packageConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionMatrixPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("matrix_config") - @ExcludeMissing - private val matrixConfig: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val matrixConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("matrix_config") + @ExcludeMissing + matrixConfig: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + matrixConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -13256,35 +13650,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionMatrixPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - matrixConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13758,10 +14132,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionMatrixPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + matrixConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -13893,23 +14293,27 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MatrixConfig - @JsonCreator private constructor( - @JsonProperty("default_unit_amount") - @ExcludeMissing - private val defaultUnitAmount: JsonField = JsonMissing.of(), - @JsonProperty("dimensions") - @ExcludeMissing - private val dimensions: JsonField> = JsonMissing.of(), - @JsonProperty("matrix_values") - @ExcludeMissing - private val matrixValues: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val defaultUnitAmount: JsonField, + private val dimensions: JsonField>, + private val matrixValues: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("default_unit_amount") + @ExcludeMissing + defaultUnitAmount: JsonField = JsonMissing.of(), + @JsonProperty("dimensions") + @ExcludeMissing + dimensions: JsonField> = JsonMissing.of(), + @JsonProperty("matrix_values") + @ExcludeMissing + matrixValues: JsonField> = JsonMissing.of(), + ) : this(defaultUnitAmount, dimensions, matrixValues, mutableMapOf()) + /** * Default per unit rate for any usage not bucketed into a specified * matrix_value @@ -13970,22 +14374,15 @@ private constructor( @ExcludeMissing fun _matrixValues(): JsonField> = matrixValues + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixConfig = apply { - if (validated) { - return@apply - } - - defaultUnitAmount() - dimensions() - matrixValues().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -14138,25 +14535,40 @@ private constructor( checkRequired("matrixValues", matrixValues).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): MatrixConfig = apply { + if (validated) { + return@apply + } + + defaultUnitAmount() + dimensions() + matrixValues().forEach { it.validate() } + validated = true + } + class MatrixValue - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + ) : this(dimensionValues, unitAmount, mutableMapOf()) + /** * One or two matrix keys to filter usage to this Matrix value by. For * example, ["region", "tier"] could be used to filter cloud usage by a @@ -14198,21 +14610,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixValue = apply { - if (validated) { - return@apply - } - - dimensionValues() - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -14337,10 +14743,22 @@ private constructor( it.toImmutable() }, checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MatrixValue = apply { + if (validated) { + return@apply + } + + dimensionValues() + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -14482,20 +14900,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -14534,21 +14955,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -14650,10 +15065,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -14786,20 +15213,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -14838,21 +15268,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -14955,10 +15379,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -15092,28 +15528,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -15160,7 +15591,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -15198,64 +15639,99 @@ private constructor( "NewSubscriptionMatrixPrice{cadence=$cadence, itemId=$itemId, matrixConfig=$matrixConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionTieredPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_config") - @ExcludeMissing - private val tieredConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_config") + @ExcludeMissing + tieredConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -15567,35 +16043,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionTieredPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -16069,10 +16525,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionTieredPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -16305,17 +16787,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for rating based on total usage quantities into the specified tier * @@ -16335,20 +16819,15 @@ private constructor( @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -16444,28 +16923,42 @@ private constructor( fun build(): TieredConfig = TieredConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("first_unit") - @ExcludeMissing - private val firstUnit: JsonField = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonProperty("last_unit") - @ExcludeMissing - private val lastUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val firstUnit: JsonField, + private val unitAmount: JsonField, + private val lastUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("first_unit") + @ExcludeMissing + firstUnit: JsonField = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + @JsonProperty("last_unit") + @ExcludeMissing + lastUnit: JsonField = JsonMissing.of(), + ) : this(firstUnit, unitAmount, lastUnit, mutableMapOf()) + /** * Inclusive tier starting value * @@ -16523,22 +17016,15 @@ private constructor( @ExcludeMissing fun _lastUnit(): JsonField = lastUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - firstUnit() - unitAmount() - lastUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -16674,10 +17160,23 @@ private constructor( checkRequired("firstUnit", firstUnit), checkRequired("unitAmount", unitAmount), lastUnit, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + firstUnit() + unitAmount() + lastUnit() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -16718,20 +17217,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -16770,21 +17272,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -16886,10 +17382,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -17022,20 +17530,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -17074,21 +17585,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -17191,10 +17696,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -17328,28 +17845,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -17396,7 +17908,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -17434,64 +17956,99 @@ private constructor( "NewSubscriptionTieredPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredConfig=$tieredConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionTieredBpsPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_bps_config") - @ExcludeMissing - private val tieredBpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredBpsConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_bps_config") + @ExcludeMissing + tieredBpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredBpsConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -17804,35 +18361,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionTieredBpsPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredBpsConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -18307,10 +18844,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionTieredBpsPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredBpsConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -18543,17 +19106,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredBpsConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for a Graduated BPS pricing model, where usage is bucketed into * specified tiers @@ -18574,20 +19139,15 @@ private constructor( @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredBpsConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -18686,31 +19246,46 @@ private constructor( fun build(): TieredBpsConfig = TieredBpsConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredBpsConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val bps: JsonField, + private val minimumAmount: JsonField, + private val maximumAmount: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") + @ExcludeMissing + bps: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, minimumAmount, maximumAmount, perUnitMaximum, mutableMapOf()) + /** * Per-event basis point rate * @@ -18785,23 +19360,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - bps() - minimumAmount() - maximumAmount() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -18951,10 +19518,24 @@ private constructor( checkRequired("minimumAmount", minimumAmount), maximumAmount, perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + bps() + minimumAmount() + maximumAmount() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -18995,20 +19576,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -19047,21 +19631,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -19163,10 +19741,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -19299,20 +19889,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -19351,21 +19944,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -19468,10 +20055,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -19605,28 +20204,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -19673,7 +20267,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -19711,64 +20315,99 @@ private constructor( "NewSubscriptionTieredBpsPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredBpsConfig=$tieredBpsConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionBpsPrice - @JsonCreator private constructor( - @JsonProperty("bps_config") - @ExcludeMissing - private val bpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bpsConfig: JsonField, + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps_config") + @ExcludeMissing + bpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + bpsConfig, + cadence, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -20080,35 +20719,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionBpsPrice = apply { - if (validated) { - return@apply - } - - bpsConfig().validate() - cadence() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -20580,24 +21199,53 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewSubscriptionBpsPrice = apply { + if (validated) { + return@apply + } + + bpsConfig().validate() + cadence() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + class BpsConfig - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bps: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") + @ExcludeMissing + bps: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, perUnitMaximum, mutableMapOf()) + /** * Basis point take rate per event * @@ -20634,21 +21282,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BpsConfig = apply { - if (validated) { - return@apply - } - - bps() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -20752,10 +21394,22 @@ private constructor( BpsConfig( checkRequired("bps", bps), perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BpsConfig = apply { + if (validated) { + return@apply + } + + bps() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -21010,20 +21664,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -21062,21 +21719,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -21178,10 +21829,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -21314,20 +21977,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -21366,21 +22032,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -21483,10 +22143,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -21620,28 +22292,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -21688,7 +22355,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -21726,64 +22403,99 @@ private constructor( "NewSubscriptionBpsPrice{bpsConfig=$bpsConfig, cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionBulkBpsPrice - @JsonCreator private constructor( - @JsonProperty("bulk_bps_config") - @ExcludeMissing - private val bulkBpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bulkBpsConfig: JsonField, + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bulk_bps_config") + @ExcludeMissing + bulkBpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + bulkBpsConfig, + cadence, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -22095,35 +22807,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionBulkBpsPrice = apply { - if (validated) { - return@apply - } - - bulkBpsConfig().validate() - cadence() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -22597,21 +23289,49 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewSubscriptionBulkBpsPrice = apply { + if (validated) { + return@apply + } + + bulkBpsConfig().validate() + cadence() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + class BulkBpsConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for a bulk BPS pricing model where all usage is aggregated to a single * tier based on total volume @@ -22632,20 +23352,15 @@ private constructor( @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkBpsConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -22743,28 +23458,42 @@ private constructor( fun build(): BulkBpsConfig = BulkBpsConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): BulkBpsConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val bps: JsonField, + private val maximumAmount: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") + @ExcludeMissing + bps: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, maximumAmount, perUnitMaximum, mutableMapOf()) + /** * Basis points to rate on * @@ -22820,22 +23549,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - bps() - maximumAmount() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -22965,10 +23687,23 @@ private constructor( checkRequired("bps", bps), maximumAmount, perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + bps() + maximumAmount() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -23241,20 +23976,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -23293,21 +24031,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -23409,10 +24141,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -23545,20 +24289,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -23597,21 +24344,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -23714,10 +24455,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -23851,28 +24604,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -23919,7 +24667,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -23957,64 +24715,99 @@ private constructor( "NewSubscriptionBulkBpsPrice{bulkBpsConfig=$bulkBpsConfig, cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionBulkPrice - @JsonCreator private constructor( - @JsonProperty("bulk_config") - @ExcludeMissing - private val bulkConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bulkConfig: JsonField, + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bulk_config") + @ExcludeMissing + bulkConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + bulkConfig, + cadence, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -24326,35 +25119,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionBulkPrice = apply { - if (validated) { - return@apply - } - - bulkConfig().validate() - cadence() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -24826,21 +25599,49 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewSubscriptionBulkPrice = apply { + if (validated) { + return@apply + } + + bulkConfig().validate() + cadence() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + class BulkConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Bulk tiers for rating based on total usage volume * @@ -24860,20 +25661,15 @@ private constructor( @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -24967,25 +25763,38 @@ private constructor( fun build(): BulkConfig = BulkConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): BulkConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonProperty("maximum_units") - @ExcludeMissing - private val maximumUnits: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val unitAmount: JsonField, + private val maximumUnits: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + @JsonProperty("maximum_units") + @ExcludeMissing + maximumUnits: JsonField = JsonMissing.of(), + ) : this(unitAmount, maximumUnits, mutableMapOf()) + /** * Amount per unit * @@ -25024,21 +25833,15 @@ private constructor( @ExcludeMissing fun _maximumUnits(): JsonField = maximumUnits + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - unitAmount() - maximumUnits() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -25154,10 +25957,22 @@ private constructor( Tier( checkRequired("unitAmount", unitAmount), maximumUnits, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + unitAmount() + maximumUnits() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -25430,20 +26245,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -25482,21 +26300,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -25598,10 +26410,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -25734,20 +26558,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -25786,21 +26613,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -25903,10 +26724,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -26040,28 +26873,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -26108,7 +26936,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -26146,65 +26984,100 @@ private constructor( "NewSubscriptionBulkPrice{bulkConfig=$bulkConfig, cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionThresholdTotalAmountPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("threshold_total_amount_config") - @ExcludeMissing - private val thresholdTotalAmountConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val thresholdTotalAmountConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("threshold_total_amount_config") + @ExcludeMissing + thresholdTotalAmountConfig: JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + thresholdTotalAmountConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -26518,35 +27391,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionThresholdTotalAmountPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - thresholdTotalAmountConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -27029,10 +27882,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionThresholdTotalAmountPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + thresholdTotalAmountConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -27265,28 +28144,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ThresholdTotalAmountConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): ThresholdTotalAmountConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -27339,7 +28213,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ThresholdTotalAmountConfig = - ThresholdTotalAmountConfig(additionalProperties.toImmutable()) + ThresholdTotalAmountConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): ThresholdTotalAmountConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -27364,20 +28248,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -27416,21 +28303,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -27532,10 +28413,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -27668,20 +28561,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -27720,21 +28616,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -27837,10 +28727,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -27974,28 +28876,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -28042,7 +28939,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -28080,64 +28987,99 @@ private constructor( "NewSubscriptionThresholdTotalAmountPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, thresholdTotalAmountConfig=$thresholdTotalAmountConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_package_config") - @ExcludeMissing - private val tieredPackageConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredPackageConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_package_config") + @ExcludeMissing + tieredPackageConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredPackageConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -28450,35 +29392,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionTieredPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredPackageConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -28954,10 +29876,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionTieredPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredPackageConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -29190,28 +30138,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredPackageConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredPackageConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -29263,7 +30206,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageConfig = - TieredPackageConfig(additionalProperties.toImmutable()) + TieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -29288,20 +30241,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -29340,21 +30296,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -29456,10 +30406,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -29592,20 +30554,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -29644,21 +30609,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -29761,10 +30720,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -29898,28 +30869,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -29966,7 +30932,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -30004,65 +30980,99 @@ private constructor( "NewSubscriptionTieredPackagePrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredPackageConfig=$tieredPackageConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionTieredWithMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_with_minimum_config") - @ExcludeMissing - private val tieredWithMinimumConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredWithMinimumConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_with_minimum_config") + @ExcludeMissing + tieredWithMinimumConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredWithMinimumConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -30376,35 +31386,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionTieredWithMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredWithMinimumConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -30883,10 +31873,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionTieredWithMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredWithMinimumConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -31119,28 +32135,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredWithMinimumConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): TieredWithMinimumConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -31193,7 +32204,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithMinimumConfig = - TieredWithMinimumConfig(additionalProperties.toImmutable()) + TieredWithMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredWithMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -31218,20 +32239,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -31270,21 +32294,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -31386,10 +32404,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -31522,20 +32552,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -31574,21 +32607,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -31691,10 +32718,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -31828,28 +32867,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -31896,7 +32930,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -31934,65 +32978,99 @@ private constructor( "NewSubscriptionTieredWithMinimumPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredWithMinimumConfig=$tieredWithMinimumConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionUnitWithPercentPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("unit_with_percent_config") - @ExcludeMissing - private val unitWithPercentConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val unitWithPercentConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("unit_with_percent_config") + @ExcludeMissing + unitWithPercentConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + unitWithPercentConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -32306,35 +33384,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionUnitWithPercentPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - unitWithPercentConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -32810,10 +33868,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionUnitWithPercentPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + unitWithPercentConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -33046,28 +34130,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitWithPercentConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitWithPercentConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -33119,7 +34198,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithPercentConfig = - UnitWithPercentConfig(additionalProperties.toImmutable()) + UnitWithPercentConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): UnitWithPercentConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -33144,20 +34233,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -33196,21 +34288,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -33312,10 +34398,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -33448,20 +34546,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -33500,21 +34601,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -33617,10 +34712,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -33754,28 +34861,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -33822,7 +34924,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -33860,65 +34972,100 @@ private constructor( "NewSubscriptionUnitWithPercentPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, unitWithPercentConfig=$unitWithPercentConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionPackageWithAllocationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("package_with_allocation_config") - @ExcludeMissing - private val packageWithAllocationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val packageWithAllocationConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("package_with_allocation_config") + @ExcludeMissing + packageWithAllocationConfig: JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + packageWithAllocationConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -34232,35 +35379,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionPackageWithAllocationPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - packageWithAllocationConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -34748,10 +35875,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionPackageWithAllocationPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + packageWithAllocationConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -34984,28 +36137,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class PackageWithAllocationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PackageWithAllocationConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -35059,7 +36207,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): PackageWithAllocationConfig = - PackageWithAllocationConfig(additionalProperties.toImmutable()) + PackageWithAllocationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): PackageWithAllocationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -35084,20 +36242,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -35136,21 +36297,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -35252,10 +36407,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -35388,20 +36555,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -35440,21 +36610,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -35557,10 +36721,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -35694,28 +36870,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -35762,7 +36933,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -35800,65 +36981,100 @@ private constructor( "NewSubscriptionPackageWithAllocationPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, packageWithAllocationConfig=$packageWithAllocationConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionTierWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_with_proration_config") - @ExcludeMissing - private val tieredWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredWithProrationConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_with_proration_config") + @ExcludeMissing + tieredWithProrationConfig: JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredWithProrationConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -36172,35 +37388,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionTierWithProrationPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredWithProrationConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -36681,10 +37877,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionTierWithProrationPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredWithProrationConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -36917,28 +38139,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredWithProrationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): TieredWithProrationConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -36991,7 +38208,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithProrationConfig = - TieredWithProrationConfig(additionalProperties.toImmutable()) + TieredWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -37016,20 +38243,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -37068,21 +38298,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -37184,10 +38408,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -37320,20 +38556,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -37372,21 +38611,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -37489,10 +38722,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -37626,28 +38871,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -37694,7 +38934,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -37732,65 +38982,99 @@ private constructor( "NewSubscriptionTierWithProrationPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredWithProrationConfig=$tieredWithProrationConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionUnitWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("unit_with_proration_config") - @ExcludeMissing - private val unitWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val unitWithProrationConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("unit_with_proration_config") + @ExcludeMissing + unitWithProrationConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + unitWithProrationConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -38104,35 +39388,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionUnitWithProrationPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - unitWithProrationConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -38611,10 +39875,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionUnitWithProrationPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + unitWithProrationConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -38847,28 +40137,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitWithProrationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): UnitWithProrationConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -38921,7 +40206,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithProrationConfig = - UnitWithProrationConfig(additionalProperties.toImmutable()) + UnitWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): UnitWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -38946,20 +40241,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -38998,21 +40296,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -39114,10 +40406,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -39250,20 +40554,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -39302,21 +40609,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -39419,10 +40720,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -39556,28 +40869,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -39624,7 +40932,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -39662,65 +40980,99 @@ private constructor( "NewSubscriptionUnitWithProrationPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, unitWithProrationConfig=$unitWithProrationConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionGroupedAllocationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("grouped_allocation_config") - @ExcludeMissing - private val groupedAllocationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val groupedAllocationConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("grouped_allocation_config") + @ExcludeMissing + groupedAllocationConfig: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + groupedAllocationConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -40034,35 +41386,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionGroupedAllocationPrice = apply { - if (validated) { - return@apply - } - - cadence() - groupedAllocationConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -40541,10 +41873,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionGroupedAllocationPrice = apply { + if (validated) { + return@apply + } + + cadence() + groupedAllocationConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -40676,28 +42034,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedAllocationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedAllocationConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -40750,7 +42103,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedAllocationConfig = - GroupedAllocationConfig(additionalProperties.toImmutable()) + GroupedAllocationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedAllocationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -40876,20 +42239,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -40928,21 +42294,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -41044,10 +42404,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -41180,20 +42552,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -41232,21 +42607,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -41349,10 +42718,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -41486,28 +42867,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -41554,7 +42930,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -41592,66 +42978,101 @@ private constructor( "NewSubscriptionGroupedAllocationPrice{cadence=$cadence, groupedAllocationConfig=$groupedAllocationConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionGroupedWithProratedMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("grouped_with_prorated_minimum_config") - @ExcludeMissing + private val cadence: JsonField, private val groupedWithProratedMinimumConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("grouped_with_prorated_minimum_config") + @ExcludeMissing + groupedWithProratedMinimumConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + groupedWithProratedMinimumConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -41967,35 +43388,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionGroupedWithProratedMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - groupedWithProratedMinimumConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -42495,10 +43896,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionGroupedWithProratedMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + groupedWithProratedMinimumConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -42630,28 +44057,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedWithProratedMinimumConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): GroupedWithProratedMinimumConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -42705,7 +44127,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithProratedMinimumConfig = - GroupedWithProratedMinimumConfig(additionalProperties.toImmutable()) + GroupedWithProratedMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedWithProratedMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -42832,20 +44264,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -42884,21 +44319,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -43000,10 +44429,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -43136,20 +44577,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -43188,21 +44632,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -43305,10 +44743,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -43442,28 +44892,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -43510,7 +44955,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -43548,65 +45003,99 @@ private constructor( "NewSubscriptionGroupedWithProratedMinimumPrice{cadence=$cadence, groupedWithProratedMinimumConfig=$groupedWithProratedMinimumConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionBulkWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("bulk_with_proration_config") - @ExcludeMissing - private val bulkWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bulkWithProrationConfig: JsonField, + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bulk_with_proration_config") + @ExcludeMissing + bulkWithProrationConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + bulkWithProrationConfig, + cadence, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -43920,35 +45409,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionBulkWithProrationPrice = apply { - if (validated) { - return@apply - } - - bulkWithProrationConfig().validate() - cadence() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -44427,32 +45896,53 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewSubscriptionBulkWithProrationPrice = apply { + if (validated) { + return@apply + } + + bulkWithProrationConfig().validate() + cadence() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + class BulkWithProrationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkWithProrationConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -44505,7 +45995,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): BulkWithProrationConfig = - BulkWithProrationConfig(additionalProperties.toImmutable()) + BulkWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BulkWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -44762,20 +46262,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -44814,21 +46317,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -44930,10 +46427,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -45066,20 +46575,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -45118,21 +46630,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -45235,10 +46741,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -45372,28 +46890,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -45440,7 +46953,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -45478,66 +47001,102 @@ private constructor( "NewSubscriptionBulkWithProrationPrice{bulkWithProrationConfig=$bulkWithProrationConfig, cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionScalableMatrixWithUnitPricingPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("scalable_matrix_with_unit_pricing_config") - @ExcludeMissing + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, private val scalableMatrixWithUnitPricingConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("scalable_matrix_with_unit_pricing_config") + @ExcludeMissing + scalableMatrixWithUnitPricingConfig: + JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + scalableMatrixWithUnitPricingConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -45854,35 +47413,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionScalableMatrixWithUnitPricingPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - scalableMatrixWithUnitPricingConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -46385,10 +47924,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionScalableMatrixWithUnitPricingPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + scalableMatrixWithUnitPricingConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -46625,28 +48190,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ScalableMatrixWithUnitPricingConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): ScalableMatrixWithUnitPricingConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -46701,7 +48261,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithUnitPricingConfig = - ScalableMatrixWithUnitPricingConfig(additionalProperties.toImmutable()) + ScalableMatrixWithUnitPricingConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): ScalableMatrixWithUnitPricingConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -46726,20 +48296,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -46778,21 +48351,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -46894,10 +48461,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -47030,20 +48609,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -47082,21 +48664,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -47199,10 +48775,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -47336,28 +48924,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -47404,7 +48987,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -47442,66 +49035,102 @@ private constructor( "NewSubscriptionScalableMatrixWithUnitPricingPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, scalableMatrixWithUnitPricingConfig=$scalableMatrixWithUnitPricingConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionScalableMatrixWithTieredPricingPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("scalable_matrix_with_tiered_pricing_config") - @ExcludeMissing + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, private val scalableMatrixWithTieredPricingConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("scalable_matrix_with_tiered_pricing_config") + @ExcludeMissing + scalableMatrixWithTieredPricingConfig: + JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + scalableMatrixWithTieredPricingConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -47818,35 +49447,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionScalableMatrixWithTieredPricingPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - scalableMatrixWithTieredPricingConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -48350,10 +49959,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionScalableMatrixWithTieredPricingPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + scalableMatrixWithTieredPricingConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -48590,28 +50225,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ScalableMatrixWithTieredPricingConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): ScalableMatrixWithTieredPricingConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -48668,10 +50298,20 @@ private constructor( */ fun build(): ScalableMatrixWithTieredPricingConfig = ScalableMatrixWithTieredPricingConfig( - additionalProperties.toImmutable() + additionalProperties.toMutableMap() ) } + private var validated: Boolean = false + + fun validate(): ScalableMatrixWithTieredPricingConfig = apply { + if (validated) { + return@apply + } + + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -48694,20 +50334,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -48746,21 +50389,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -48862,10 +50499,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -48998,20 +50647,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -49050,21 +50702,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -49167,10 +50813,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -49304,28 +50962,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -49372,7 +51025,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -49410,65 +51073,100 @@ private constructor( "NewSubscriptionScalableMatrixWithTieredPricingPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, scalableMatrixWithTieredPricingConfig=$scalableMatrixWithTieredPricingConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionCumulativeGroupedBulkPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("cumulative_grouped_bulk_config") - @ExcludeMissing - private val cumulativeGroupedBulkConfig: JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val cumulativeGroupedBulkConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("cumulative_grouped_bulk_config") + @ExcludeMissing + cumulativeGroupedBulkConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + cumulativeGroupedBulkConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -49782,35 +51480,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionCumulativeGroupedBulkPrice = apply { - if (validated) { - return@apply - } - - cadence() - cumulativeGroupedBulkConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -50298,10 +51976,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionCumulativeGroupedBulkPrice = apply { + if (validated) { + return@apply + } + + cadence() + cumulativeGroupedBulkConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -50433,28 +52137,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CumulativeGroupedBulkConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CumulativeGroupedBulkConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -50508,7 +52207,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): CumulativeGroupedBulkConfig = - CumulativeGroupedBulkConfig(additionalProperties.toImmutable()) + CumulativeGroupedBulkConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): CumulativeGroupedBulkConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -50634,20 +52343,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -50686,21 +52398,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -50802,10 +52508,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -50938,20 +52656,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -50990,21 +52711,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -51107,10 +52822,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -51244,28 +52971,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -51312,7 +53034,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -51350,65 +53082,100 @@ private constructor( "NewSubscriptionCumulativeGroupedBulkPrice{cadence=$cadence, cumulativeGroupedBulkConfig=$cumulativeGroupedBulkConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionMaxGroupTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("max_group_tiered_package_config") - @ExcludeMissing - private val maxGroupTieredPackageConfig: JsonField = - JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val maxGroupTieredPackageConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("max_group_tiered_package_config") + @ExcludeMissing + maxGroupTieredPackageConfig: JsonField = + JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + maxGroupTieredPackageConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -51722,35 +53489,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionMaxGroupTieredPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - maxGroupTieredPackageConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -52238,10 +53985,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionMaxGroupTieredPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + maxGroupTieredPackageConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -52373,28 +54146,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MaxGroupTieredPackageConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MaxGroupTieredPackageConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -52448,7 +54216,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MaxGroupTieredPackageConfig = - MaxGroupTieredPackageConfig(additionalProperties.toImmutable()) + MaxGroupTieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): MaxGroupTieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -52574,20 +54352,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -52626,21 +54407,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -52742,10 +54517,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -52878,20 +54665,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -52930,21 +54720,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -53047,10 +54831,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -53184,28 +54980,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -53252,7 +55043,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -53290,66 +55091,101 @@ private constructor( "NewSubscriptionMaxGroupTieredPackagePrice{cadence=$cadence, itemId=$itemId, maxGroupTieredPackageConfig=$maxGroupTieredPackageConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionGroupedWithMeteredMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("grouped_with_metered_minimum_config") - @ExcludeMissing + private val cadence: JsonField, private val groupedWithMeteredMinimumConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("grouped_with_metered_minimum_config") + @ExcludeMissing + groupedWithMeteredMinimumConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + groupedWithMeteredMinimumConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -53665,35 +55501,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionGroupedWithMeteredMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - groupedWithMeteredMinimumConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -54192,10 +56008,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionGroupedWithMeteredMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + groupedWithMeteredMinimumConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -54327,28 +56169,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedWithMeteredMinimumConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): GroupedWithMeteredMinimumConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -54402,7 +56239,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithMeteredMinimumConfig = - GroupedWithMeteredMinimumConfig(additionalProperties.toImmutable()) + GroupedWithMeteredMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedWithMeteredMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -54529,20 +56376,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -54581,21 +56431,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -54697,10 +56541,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -54833,20 +56689,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -54885,21 +56744,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -55002,10 +56855,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -55139,28 +57004,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -55207,7 +57067,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -55245,65 +57115,100 @@ private constructor( "NewSubscriptionGroupedWithMeteredMinimumPrice{cadence=$cadence, groupedWithMeteredMinimumConfig=$groupedWithMeteredMinimumConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionMatrixWithDisplayNamePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("matrix_with_display_name_config") - @ExcludeMissing - private val matrixWithDisplayNameConfig: JsonField = - JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val matrixWithDisplayNameConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("matrix_with_display_name_config") + @ExcludeMissing + matrixWithDisplayNameConfig: JsonField = + JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + matrixWithDisplayNameConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -55617,35 +57522,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionMatrixWithDisplayNamePrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - matrixWithDisplayNameConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -56133,10 +58018,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionMatrixWithDisplayNamePrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + matrixWithDisplayNameConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -56268,28 +58179,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MatrixWithDisplayNameConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): MatrixWithDisplayNameConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -56343,7 +58249,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MatrixWithDisplayNameConfig = - MatrixWithDisplayNameConfig(additionalProperties.toImmutable()) + MatrixWithDisplayNameConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): MatrixWithDisplayNameConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -56469,20 +58385,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -56521,21 +58440,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -56637,10 +58550,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -56773,20 +58698,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -56825,21 +58753,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -56942,10 +58864,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -57079,28 +59013,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -57147,7 +59076,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -57185,65 +59124,100 @@ private constructor( "NewSubscriptionMatrixWithDisplayNamePrice{cadence=$cadence, itemId=$itemId, matrixWithDisplayNameConfig=$matrixWithDisplayNameConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionGroupedTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("grouped_tiered_package_config") - @ExcludeMissing - private val groupedTieredPackageConfig: JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val groupedTieredPackageConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("grouped_tiered_package_config") + @ExcludeMissing + groupedTieredPackageConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + groupedTieredPackageConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -57557,35 +59531,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionGroupedTieredPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - groupedTieredPackageConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -58068,10 +60022,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionGroupedTieredPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + groupedTieredPackageConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -58203,28 +60183,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedTieredPackageConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): GroupedTieredPackageConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -58277,7 +60252,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredPackageConfig = - GroupedTieredPackageConfig(additionalProperties.toImmutable()) + GroupedTieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedTieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -58403,20 +60388,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -58455,21 +60443,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -58571,10 +60553,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -58707,20 +60701,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -58759,21 +60756,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -58876,10 +60867,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -59013,28 +61016,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -59081,7 +61079,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -59138,19 +61146,21 @@ private constructor( "AddPrice{allocationPrice=$allocationPrice, discounts=$discounts, endDate=$endDate, externalPriceId=$externalPriceId, maximumAmount=$maximumAmount, minimumAmount=$minimumAmount, planPhaseOrder=$planPhaseOrder, price=$price, priceId=$priceId, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleAnchorConfiguration - @JsonCreator private constructor( - @JsonProperty("day") @ExcludeMissing private val day: JsonField = JsonMissing.of(), - @JsonProperty("month") - @ExcludeMissing - private val month: JsonField = JsonMissing.of(), - @JsonProperty("year") @ExcludeMissing private val year: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val day: JsonField, + private val month: JsonField, + private val year: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("day") @ExcludeMissing day: JsonField = JsonMissing.of(), + @JsonProperty("month") @ExcludeMissing month: JsonField = JsonMissing.of(), + @JsonProperty("year") @ExcludeMissing year: JsonField = JsonMissing.of(), + ) : this(day, month, year, mutableMapOf()) + /** * The day of the month on which the billing cycle is anchored. If the maximum number of * days in a month is greater than this value, the last day of the month is the billing @@ -59201,22 +61211,15 @@ private constructor( */ @JsonProperty("year") @ExcludeMissing fun _year(): JsonField = year + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleAnchorConfiguration = apply { - if (validated) { - return@apply - } - - day() - month() - year() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -59355,10 +61358,23 @@ private constructor( checkRequired("day", day), month, year, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleAnchorConfiguration = apply { + if (validated) { + return@apply + } + + day() + month() + year() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -59491,27 +61507,20 @@ private constructor( * the value to `null`, and the entire metadata mapping can be cleared by setting `metadata` to * `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -59555,7 +61564,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -59575,17 +61594,19 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class RemoveAdjustment - @JsonCreator private constructor( - @JsonProperty("adjustment_id") - @ExcludeMissing - private val adjustmentId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_id") + @ExcludeMissing + adjustmentId: JsonField = JsonMissing.of() + ) : this(adjustmentId, mutableMapOf()) + /** * The id of the adjustment to remove on the subscription. * @@ -59604,20 +61625,15 @@ private constructor( @ExcludeMissing fun _adjustmentId(): JsonField = adjustmentId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): RemoveAdjustment = apply { - if (validated) { - return@apply - } - - adjustmentId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -59694,10 +61710,21 @@ private constructor( fun build(): RemoveAdjustment = RemoveAdjustment( checkRequired("adjustmentId", adjustmentId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): RemoveAdjustment = apply { + if (validated) { + return@apply + } + + adjustmentId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -59716,20 +61743,21 @@ private constructor( "RemoveAdjustment{adjustmentId=$adjustmentId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class RemovePrice - @JsonCreator private constructor( - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val externalPriceId: JsonField, + private val priceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + ) : this(externalPriceId, priceId, mutableMapOf()) + /** * The external price id of the price to remove on the subscription. * @@ -59764,21 +61792,15 @@ private constructor( */ @JsonProperty("price_id") @ExcludeMissing fun _priceId(): JsonField = priceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): RemovePrice = apply { - if (validated) { - return@apply - } - - externalPriceId() - priceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -59861,7 +61883,19 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): RemovePrice = - RemovePrice(externalPriceId, priceId, additionalProperties.toImmutable()) + RemovePrice(externalPriceId, priceId, additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): RemovePrice = apply { + if (validated) { + return@apply + } + + externalPriceId() + priceId() + validated = true } override fun equals(other: Any?): Boolean { @@ -59882,20 +61916,23 @@ private constructor( "RemovePrice{externalPriceId=$externalPriceId, priceId=$priceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class ReplaceAdjustment - @JsonCreator private constructor( - @JsonProperty("adjustment") - @ExcludeMissing - private val adjustment: JsonField = JsonMissing.of(), - @JsonProperty("replaces_adjustment_id") - @ExcludeMissing - private val replacesAdjustmentId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustment: JsonField, + private val replacesAdjustmentId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment") + @ExcludeMissing + adjustment: JsonField = JsonMissing.of(), + @JsonProperty("replaces_adjustment_id") + @ExcludeMissing + replacesAdjustmentId: JsonField = JsonMissing.of(), + ) : this(adjustment, replacesAdjustmentId, mutableMapOf()) + /** * The definition of a new adjustment to create and add to the subscription. * @@ -59932,21 +61969,15 @@ private constructor( @ExcludeMissing fun _replacesAdjustmentId(): JsonField = replacesAdjustmentId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ReplaceAdjustment = apply { - if (validated) { - return@apply - } - - adjustment().validate() - replacesAdjustmentId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -60072,10 +62103,22 @@ private constructor( ReplaceAdjustment( checkRequired("adjustment", adjustment), checkRequired("replacesAdjustmentId", replacesAdjustmentId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): ReplaceAdjustment = apply { + if (validated) { + return@apply + } + + adjustment().validate() + replacesAdjustmentId() + validated = true + } + /** The definition of a new adjustment to create and add to the subscription. */ @JsonDeserialize(using = Adjustment.Deserializer::class) @JsonSerialize(using = Adjustment.Serializer::class) @@ -60320,26 +62363,37 @@ private constructor( } } - @NoAutoDetect class NewPercentageDiscount - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val percentageDiscount: JsonField, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + appliesToPriceIds, + percentageDiscount, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -60415,23 +62469,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPercentageDiscount = apply { - if (validated) { - return@apply - } - - adjustmentType() - appliesToPriceIds() - percentageDiscount() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -60588,10 +62634,24 @@ private constructor( }, checkRequired("percentageDiscount", percentageDiscount), isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPercentageDiscount = apply { + if (validated) { + return@apply + } + + adjustmentType() + appliesToPriceIds() + percentageDiscount() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -60712,26 +62772,37 @@ private constructor( "NewPercentageDiscount{adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, percentageDiscount=$percentageDiscount, isInvoiceLevel=$isInvoiceLevel, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewUsageDiscount - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val usageDiscount: JsonField, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + appliesToPriceIds, + usageDiscount, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -60806,23 +62877,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewUsageDiscount = apply { - if (validated) { - return@apply - } - - adjustmentType() - appliesToPriceIds() - usageDiscount() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -60977,10 +63040,24 @@ private constructor( }, checkRequired("usageDiscount", usageDiscount), isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewUsageDiscount = apply { + if (validated) { + return@apply + } + + adjustmentType() + appliesToPriceIds() + usageDiscount() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -61101,26 +63178,37 @@ private constructor( "NewUsageDiscount{adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, usageDiscount=$usageDiscount, isInvoiceLevel=$isInvoiceLevel, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewAmountDiscount - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + amountDiscount, + appliesToPriceIds, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -61195,23 +63283,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewAmountDiscount = apply { - if (validated) { - return@apply - } - - adjustmentType() - amountDiscount() - appliesToPriceIds() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -61367,10 +63447,24 @@ private constructor( it.toImmutable() }, isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewAmountDiscount = apply { + if (validated) { + return@apply + } + + adjustmentType() + amountDiscount() + appliesToPriceIds() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -61491,29 +63585,42 @@ private constructor( "NewAmountDiscount{adjustmentType=$adjustmentType, amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewMinimum - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val itemId: JsonField, + private val minimumAmount: JsonField, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + appliesToPriceIds, + itemId, + minimumAmount, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -61605,24 +63712,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewMinimum = apply { - if (validated) { - return@apply - } - - adjustmentType() - appliesToPriceIds() - itemId() - minimumAmount() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -61793,10 +63891,25 @@ private constructor( checkRequired("itemId", itemId), checkRequired("minimumAmount", minimumAmount), isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewMinimum = apply { + if (validated) { + return@apply + } + + adjustmentType() + appliesToPriceIds() + itemId() + minimumAmount() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -61917,26 +64030,37 @@ private constructor( "NewMinimum{adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, itemId=$itemId, minimumAmount=$minimumAmount, isInvoiceLevel=$isInvoiceLevel, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewMaximum - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + appliesToPriceIds, + maximumAmount, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -62011,23 +64135,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewMaximum = apply { - if (validated) { - return@apply - } - - adjustmentType() - appliesToPriceIds() - maximumAmount() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -62181,10 +64297,24 @@ private constructor( }, checkRequired("maximumAmount", maximumAmount), isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewMaximum = apply { + if (validated) { + return@apply + } + + adjustmentType() + appliesToPriceIds() + maximumAmount() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -62324,41 +64454,58 @@ private constructor( "ReplaceAdjustment{adjustment=$adjustment, replacesAdjustmentId=$replacesAdjustmentId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class ReplacePrice - @JsonCreator private constructor( - @JsonProperty("replaces_price_id") - @ExcludeMissing - private val replacesPriceId: JsonField = JsonMissing.of(), - @JsonProperty("allocation_price") - @ExcludeMissing - private val allocationPrice: JsonField = JsonMissing.of(), - @JsonProperty("discounts") - @ExcludeMissing - private val discounts: JsonField> = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("price") - @ExcludeMissing - private val price: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val replacesPriceId: JsonField, + private val allocationPrice: JsonField, + private val discounts: JsonField>, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val maximumAmount: JsonField, + private val minimumAmount: JsonField, + private val price: JsonField, + private val priceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("replaces_price_id") + @ExcludeMissing + replacesPriceId: JsonField = JsonMissing.of(), + @JsonProperty("allocation_price") + @ExcludeMissing + allocationPrice: JsonField = JsonMissing.of(), + @JsonProperty("discounts") + @ExcludeMissing + discounts: JsonField> = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + ) : this( + replacesPriceId, + allocationPrice, + discounts, + externalPriceId, + fixedPriceQuantity, + maximumAmount, + minimumAmount, + price, + priceId, + mutableMapOf(), + ) + /** * The id of the price on the plan to replace in the subscription. * @@ -62529,28 +64676,15 @@ private constructor( */ @JsonProperty("price_id") @ExcludeMissing fun _priceId(): JsonField = priceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ReplacePrice = apply { - if (validated) { - return@apply - } - - replacesPriceId() - allocationPrice().ifPresent { it.validate() } - discounts().ifPresent { it.forEach { it.validate() } } - externalPriceId() - fixedPriceQuantity() - maximumAmount() - minimumAmount() - price().ifPresent { it.validate() } - priceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -63075,31 +65209,55 @@ private constructor( minimumAmount, price, priceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): ReplacePrice = apply { + if (validated) { + return@apply + } + + replacesPriceId() + allocationPrice().ifPresent { it.validate() } + discounts().ifPresent { it.forEach { it.validate() } } + externalPriceId() + fixedPriceQuantity() + maximumAmount() + minimumAmount() + price().ifPresent { it.validate() } + priceId() + validated = true + } + /** The definition of a new allocation price to create and add to the subscription. */ - @NoAutoDetect class AllocationPrice - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("expires_at_end_of_cadence") - @ExcludeMissing - private val expiresAtEndOfCadence: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val cadence: JsonField, + private val currency: JsonField, + private val expiresAtEndOfCadence: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("expires_at_end_of_cadence") + @ExcludeMissing + expiresAtEndOfCadence: JsonField = JsonMissing.of(), + ) : this(amount, cadence, currency, expiresAtEndOfCadence, mutableMapOf()) + /** * An amount of the currency to allocate to the customer at the specified cadence. * @@ -63171,23 +65329,15 @@ private constructor( @ExcludeMissing fun _expiresAtEndOfCadence(): JsonField = expiresAtEndOfCadence + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AllocationPrice = apply { - if (validated) { - return@apply - } - - amount() - cadence() - currency() - expiresAtEndOfCadence() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -63327,10 +65477,24 @@ private constructor( checkRequired("cadence", cadence), checkRequired("currency", currency), checkRequired("expiresAtEndOfCadence", expiresAtEndOfCadence), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AllocationPrice = apply { + if (validated) { + return@apply + } + + amount() + cadence() + currency() + expiresAtEndOfCadence() + validated = true + } + /** The cadence at which to allocate the amount to the customer. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -63478,26 +65642,37 @@ private constructor( "AllocationPrice{amount=$amount, cadence=$cadence, currency=$currency, expiresAtEndOfCadence=$expiresAtEndOfCadence, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Discount - @JsonCreator private constructor( - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val discountType: JsonField, + private val amountDiscount: JsonField, + private val percentageDiscount: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + discountType, + amountDiscount, + percentageDiscount, + usageDiscount, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -63573,23 +65748,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Discount = apply { - if (validated) { - return@apply - } - - discountType() - amountDiscount() - percentageDiscount() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -63761,10 +65928,24 @@ private constructor( amountDiscount, percentageDiscount, usageDiscount, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Discount = apply { + if (validated) { + return@apply + } + + discountType() + amountDiscount() + percentageDiscount() + usageDiscount() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -65184,64 +67365,99 @@ private constructor( } } - @NoAutoDetect class NewSubscriptionUnitPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("unit_config") - @ExcludeMissing - private val unitConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val unitConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("unit_config") + @ExcludeMissing + unitConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + unitConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -65553,35 +67769,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionUnitPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - unitConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -66053,10 +68249,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionUnitPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + unitConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -66289,17 +68511,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitConfig - @JsonCreator private constructor( - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of() + ) : this(unitAmount, mutableMapOf()) + /** * Rate per unit of usage * @@ -66319,20 +68543,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitConfig = apply { - if (validated) { - return@apply - } - - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -66413,10 +68632,21 @@ private constructor( fun build(): UnitConfig = UnitConfig( checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UnitConfig = apply { + if (validated) { + return@apply + } + + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -66439,20 +68669,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -66491,21 +68724,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -66607,10 +68834,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -66743,20 +68982,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -66795,21 +69037,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -66912,10 +69148,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -67049,28 +69297,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -67117,7 +69360,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -67155,64 +69408,99 @@ private constructor( "NewSubscriptionUnitPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, unitConfig=$unitConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("package_config") - @ExcludeMissing - private val packageConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val packageConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("package_config") + @ExcludeMissing + packageConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + packageConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -67524,35 +69812,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - packageConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -68026,10 +70294,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + packageConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -68262,20 +70556,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class PackageConfig - @JsonCreator private constructor( - @JsonProperty("package_amount") - @ExcludeMissing - private val packageAmount: JsonField = JsonMissing.of(), - @JsonProperty("package_size") - @ExcludeMissing - private val packageSize: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val packageAmount: JsonField, + private val packageSize: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("package_amount") + @ExcludeMissing + packageAmount: JsonField = JsonMissing.of(), + @JsonProperty("package_size") + @ExcludeMissing + packageSize: JsonField = JsonMissing.of(), + ) : this(packageAmount, packageSize, mutableMapOf()) + /** * A currency amount to rate usage by * @@ -68315,21 +70612,15 @@ private constructor( @ExcludeMissing fun _packageSize(): JsonField = packageSize + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PackageConfig = apply { - if (validated) { - return@apply - } - - packageAmount() - packageSize() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -68434,10 +70725,22 @@ private constructor( PackageConfig( checkRequired("packageAmount", packageAmount), checkRequired("packageSize", packageSize), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PackageConfig = apply { + if (validated) { + return@apply + } + + packageAmount() + packageSize() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -68460,20 +70763,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -68512,21 +70818,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -68628,10 +70928,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -68764,20 +71076,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -68816,21 +71131,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -68933,10 +71242,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -69070,28 +71391,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -69138,7 +71454,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -69176,64 +71502,99 @@ private constructor( "NewSubscriptionPackagePrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, packageConfig=$packageConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionMatrixPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("matrix_config") - @ExcludeMissing - private val matrixConfig: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val matrixConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("matrix_config") + @ExcludeMissing + matrixConfig: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + matrixConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -69545,35 +71906,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionMatrixPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - matrixConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -70047,10 +72388,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionMatrixPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + matrixConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -70182,23 +72549,27 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MatrixConfig - @JsonCreator private constructor( - @JsonProperty("default_unit_amount") - @ExcludeMissing - private val defaultUnitAmount: JsonField = JsonMissing.of(), - @JsonProperty("dimensions") - @ExcludeMissing - private val dimensions: JsonField> = JsonMissing.of(), - @JsonProperty("matrix_values") - @ExcludeMissing - private val matrixValues: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val defaultUnitAmount: JsonField, + private val dimensions: JsonField>, + private val matrixValues: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("default_unit_amount") + @ExcludeMissing + defaultUnitAmount: JsonField = JsonMissing.of(), + @JsonProperty("dimensions") + @ExcludeMissing + dimensions: JsonField> = JsonMissing.of(), + @JsonProperty("matrix_values") + @ExcludeMissing + matrixValues: JsonField> = JsonMissing.of(), + ) : this(defaultUnitAmount, dimensions, matrixValues, mutableMapOf()) + /** * Default per unit rate for any usage not bucketed into a specified * matrix_value @@ -70259,22 +72630,15 @@ private constructor( @ExcludeMissing fun _matrixValues(): JsonField> = matrixValues + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixConfig = apply { - if (validated) { - return@apply - } - - defaultUnitAmount() - dimensions() - matrixValues().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -70427,25 +72791,40 @@ private constructor( checkRequired("matrixValues", matrixValues).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): MatrixConfig = apply { + if (validated) { + return@apply + } + + defaultUnitAmount() + dimensions() + matrixValues().forEach { it.validate() } + validated = true + } + class MatrixValue - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + ) : this(dimensionValues, unitAmount, mutableMapOf()) + /** * One or two matrix keys to filter usage to this Matrix value by. For * example, ["region", "tier"] could be used to filter cloud usage by a @@ -70487,21 +72866,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixValue = apply { - if (validated) { - return@apply - } - - dimensionValues() - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -70626,10 +72999,22 @@ private constructor( it.toImmutable() }, checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MatrixValue = apply { + if (validated) { + return@apply + } + + dimensionValues() + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -70771,20 +73156,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -70823,21 +73211,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -70939,10 +73321,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -71075,20 +73469,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -71127,21 +73524,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -71244,10 +73635,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -71381,28 +73784,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -71449,7 +73847,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -71487,64 +73895,99 @@ private constructor( "NewSubscriptionMatrixPrice{cadence=$cadence, itemId=$itemId, matrixConfig=$matrixConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionTieredPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_config") - @ExcludeMissing - private val tieredConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_config") + @ExcludeMissing + tieredConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -71856,35 +74299,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionTieredPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -72358,10 +74781,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionTieredPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -72594,17 +75043,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for rating based on total usage quantities into the specified tier * @@ -72624,20 +75075,15 @@ private constructor( @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -72733,28 +75179,42 @@ private constructor( fun build(): TieredConfig = TieredConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("first_unit") - @ExcludeMissing - private val firstUnit: JsonField = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonProperty("last_unit") - @ExcludeMissing - private val lastUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val firstUnit: JsonField, + private val unitAmount: JsonField, + private val lastUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("first_unit") + @ExcludeMissing + firstUnit: JsonField = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + @JsonProperty("last_unit") + @ExcludeMissing + lastUnit: JsonField = JsonMissing.of(), + ) : this(firstUnit, unitAmount, lastUnit, mutableMapOf()) + /** * Inclusive tier starting value * @@ -72812,22 +75272,15 @@ private constructor( @ExcludeMissing fun _lastUnit(): JsonField = lastUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - firstUnit() - unitAmount() - lastUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -72963,10 +75416,23 @@ private constructor( checkRequired("firstUnit", firstUnit), checkRequired("unitAmount", unitAmount), lastUnit, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + firstUnit() + unitAmount() + lastUnit() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -73007,20 +75473,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -73059,21 +75528,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -73175,10 +75638,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -73311,20 +75786,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -73363,21 +75841,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -73480,10 +75952,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -73617,28 +76101,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -73685,7 +76164,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -73723,64 +76212,99 @@ private constructor( "NewSubscriptionTieredPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredConfig=$tieredConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionTieredBpsPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_bps_config") - @ExcludeMissing - private val tieredBpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredBpsConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_bps_config") + @ExcludeMissing + tieredBpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredBpsConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -74093,35 +76617,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionTieredBpsPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredBpsConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -74596,10 +77100,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionTieredBpsPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredBpsConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -74832,17 +77362,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredBpsConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for a Graduated BPS pricing model, where usage is bucketed into * specified tiers @@ -74863,20 +77395,15 @@ private constructor( @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredBpsConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -74975,31 +77502,46 @@ private constructor( fun build(): TieredBpsConfig = TieredBpsConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredBpsConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val bps: JsonField, + private val minimumAmount: JsonField, + private val maximumAmount: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") + @ExcludeMissing + bps: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, minimumAmount, maximumAmount, perUnitMaximum, mutableMapOf()) + /** * Per-event basis point rate * @@ -75074,23 +77616,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - bps() - minimumAmount() - maximumAmount() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -75240,10 +77774,24 @@ private constructor( checkRequired("minimumAmount", minimumAmount), maximumAmount, perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + bps() + minimumAmount() + maximumAmount() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -75284,20 +77832,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -75336,21 +77887,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -75452,10 +77997,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -75588,20 +78145,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -75640,21 +78200,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -75757,10 +78311,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -75894,28 +78460,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -75962,7 +78523,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -76000,64 +78571,99 @@ private constructor( "NewSubscriptionTieredBpsPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredBpsConfig=$tieredBpsConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionBpsPrice - @JsonCreator private constructor( - @JsonProperty("bps_config") - @ExcludeMissing - private val bpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bpsConfig: JsonField, + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps_config") + @ExcludeMissing + bpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + bpsConfig, + cadence, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -76369,35 +78975,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionBpsPrice = apply { - if (validated) { - return@apply - } - - bpsConfig().validate() - cadence() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -76869,24 +79455,53 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewSubscriptionBpsPrice = apply { + if (validated) { + return@apply + } + + bpsConfig().validate() + cadence() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + class BpsConfig - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bps: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") + @ExcludeMissing + bps: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, perUnitMaximum, mutableMapOf()) + /** * Basis point take rate per event * @@ -76923,21 +79538,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BpsConfig = apply { - if (validated) { - return@apply - } - - bps() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -77041,10 +79650,22 @@ private constructor( BpsConfig( checkRequired("bps", bps), perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BpsConfig = apply { + if (validated) { + return@apply + } + + bps() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -77299,20 +79920,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -77351,21 +79975,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -77467,10 +80085,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -77603,20 +80233,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -77655,21 +80288,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -77772,10 +80399,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -77909,28 +80548,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -77977,7 +80611,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -78015,64 +80659,99 @@ private constructor( "NewSubscriptionBpsPrice{bpsConfig=$bpsConfig, cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionBulkBpsPrice - @JsonCreator private constructor( - @JsonProperty("bulk_bps_config") - @ExcludeMissing - private val bulkBpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bulkBpsConfig: JsonField, + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bulk_bps_config") + @ExcludeMissing + bulkBpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + bulkBpsConfig, + cadence, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -78384,35 +81063,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionBulkBpsPrice = apply { - if (validated) { - return@apply - } - - bulkBpsConfig().validate() - cadence() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -78886,21 +81545,49 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewSubscriptionBulkBpsPrice = apply { + if (validated) { + return@apply + } + + bulkBpsConfig().validate() + cadence() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + class BulkBpsConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for a bulk BPS pricing model where all usage is aggregated to a single * tier based on total volume @@ -78921,20 +81608,15 @@ private constructor( @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkBpsConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -79032,28 +81714,42 @@ private constructor( fun build(): BulkBpsConfig = BulkBpsConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): BulkBpsConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val bps: JsonField, + private val maximumAmount: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") + @ExcludeMissing + bps: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, maximumAmount, perUnitMaximum, mutableMapOf()) + /** * Basis points to rate on * @@ -79109,22 +81805,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - bps() - maximumAmount() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -79254,10 +81943,23 @@ private constructor( checkRequired("bps", bps), maximumAmount, perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + bps() + maximumAmount() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -79530,20 +82232,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -79582,21 +82287,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -79698,10 +82397,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -79834,20 +82545,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -79886,21 +82600,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -80003,10 +82711,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -80140,28 +82860,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -80208,7 +82923,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -80246,64 +82971,99 @@ private constructor( "NewSubscriptionBulkBpsPrice{bulkBpsConfig=$bulkBpsConfig, cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionBulkPrice - @JsonCreator private constructor( - @JsonProperty("bulk_config") - @ExcludeMissing - private val bulkConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bulkConfig: JsonField, + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bulk_config") + @ExcludeMissing + bulkConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + bulkConfig, + cadence, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -80615,35 +83375,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionBulkPrice = apply { - if (validated) { - return@apply - } - - bulkConfig().validate() - cadence() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -81115,21 +83855,49 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewSubscriptionBulkPrice = apply { + if (validated) { + return@apply + } + + bulkConfig().validate() + cadence() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + class BulkConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Bulk tiers for rating based on total usage volume * @@ -81149,20 +83917,15 @@ private constructor( @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -81256,25 +84019,38 @@ private constructor( fun build(): BulkConfig = BulkConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): BulkConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonProperty("maximum_units") - @ExcludeMissing - private val maximumUnits: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val unitAmount: JsonField, + private val maximumUnits: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + @JsonProperty("maximum_units") + @ExcludeMissing + maximumUnits: JsonField = JsonMissing.of(), + ) : this(unitAmount, maximumUnits, mutableMapOf()) + /** * Amount per unit * @@ -81313,21 +84089,15 @@ private constructor( @ExcludeMissing fun _maximumUnits(): JsonField = maximumUnits + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - unitAmount() - maximumUnits() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -81443,10 +84213,22 @@ private constructor( Tier( checkRequired("unitAmount", unitAmount), maximumUnits, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + unitAmount() + maximumUnits() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -81719,20 +84501,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -81771,21 +84556,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -81887,10 +84666,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -82023,20 +84814,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -82075,21 +84869,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -82192,10 +84980,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -82329,28 +85129,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -82397,7 +85192,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -82435,65 +85240,100 @@ private constructor( "NewSubscriptionBulkPrice{bulkConfig=$bulkConfig, cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionThresholdTotalAmountPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("threshold_total_amount_config") - @ExcludeMissing - private val thresholdTotalAmountConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val thresholdTotalAmountConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("threshold_total_amount_config") + @ExcludeMissing + thresholdTotalAmountConfig: JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + thresholdTotalAmountConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -82807,35 +85647,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionThresholdTotalAmountPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - thresholdTotalAmountConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -83318,10 +86138,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionThresholdTotalAmountPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + thresholdTotalAmountConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -83554,28 +86400,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ThresholdTotalAmountConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): ThresholdTotalAmountConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -83628,7 +86469,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ThresholdTotalAmountConfig = - ThresholdTotalAmountConfig(additionalProperties.toImmutable()) + ThresholdTotalAmountConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): ThresholdTotalAmountConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -83653,20 +86504,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -83705,21 +86559,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -83821,10 +86669,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -83957,20 +86817,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -84009,21 +86872,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -84126,10 +86983,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -84263,28 +87132,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -84331,7 +87195,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -84369,64 +87243,99 @@ private constructor( "NewSubscriptionThresholdTotalAmountPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, thresholdTotalAmountConfig=$thresholdTotalAmountConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_package_config") - @ExcludeMissing - private val tieredPackageConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredPackageConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_package_config") + @ExcludeMissing + tieredPackageConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredPackageConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -84739,35 +87648,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionTieredPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredPackageConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -85243,10 +88132,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionTieredPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredPackageConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -85479,28 +88394,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredPackageConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredPackageConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -85552,7 +88462,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageConfig = - TieredPackageConfig(additionalProperties.toImmutable()) + TieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -85577,20 +88497,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -85629,21 +88552,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -85745,10 +88662,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -85881,20 +88810,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -85933,21 +88865,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -86050,10 +88976,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -86187,28 +89125,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -86255,7 +89188,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -86293,65 +89236,99 @@ private constructor( "NewSubscriptionTieredPackagePrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredPackageConfig=$tieredPackageConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionTieredWithMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_with_minimum_config") - @ExcludeMissing - private val tieredWithMinimumConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredWithMinimumConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_with_minimum_config") + @ExcludeMissing + tieredWithMinimumConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredWithMinimumConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -86665,35 +89642,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionTieredWithMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredWithMinimumConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -87172,10 +90129,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionTieredWithMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredWithMinimumConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -87408,28 +90391,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredWithMinimumConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): TieredWithMinimumConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -87482,7 +90460,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithMinimumConfig = - TieredWithMinimumConfig(additionalProperties.toImmutable()) + TieredWithMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredWithMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -87507,20 +90495,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -87559,21 +90550,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -87675,10 +90660,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -87811,20 +90808,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -87863,21 +90863,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -87980,10 +90974,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -88117,28 +91123,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -88185,7 +91186,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -88223,65 +91234,99 @@ private constructor( "NewSubscriptionTieredWithMinimumPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredWithMinimumConfig=$tieredWithMinimumConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionUnitWithPercentPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("unit_with_percent_config") - @ExcludeMissing - private val unitWithPercentConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val unitWithPercentConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("unit_with_percent_config") + @ExcludeMissing + unitWithPercentConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + unitWithPercentConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -88595,35 +91640,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionUnitWithPercentPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - unitWithPercentConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -89099,10 +92124,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionUnitWithPercentPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + unitWithPercentConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -89335,28 +92386,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitWithPercentConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitWithPercentConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -89408,7 +92454,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithPercentConfig = - UnitWithPercentConfig(additionalProperties.toImmutable()) + UnitWithPercentConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): UnitWithPercentConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -89433,20 +92489,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -89485,21 +92544,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -89601,10 +92654,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -89737,20 +92802,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -89789,21 +92857,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -89906,10 +92968,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -90043,28 +93117,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -90111,7 +93180,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -90149,65 +93228,100 @@ private constructor( "NewSubscriptionUnitWithPercentPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, unitWithPercentConfig=$unitWithPercentConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionPackageWithAllocationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("package_with_allocation_config") - @ExcludeMissing - private val packageWithAllocationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val packageWithAllocationConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("package_with_allocation_config") + @ExcludeMissing + packageWithAllocationConfig: JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + packageWithAllocationConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -90521,35 +93635,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionPackageWithAllocationPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - packageWithAllocationConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -91037,10 +94131,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionPackageWithAllocationPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + packageWithAllocationConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -91273,28 +94393,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class PackageWithAllocationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PackageWithAllocationConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -91348,7 +94463,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): PackageWithAllocationConfig = - PackageWithAllocationConfig(additionalProperties.toImmutable()) + PackageWithAllocationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): PackageWithAllocationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -91373,20 +94498,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -91425,21 +94553,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -91541,10 +94663,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -91677,20 +94811,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -91729,21 +94866,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -91846,10 +94977,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -91983,28 +95126,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -92051,7 +95189,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -92089,65 +95237,100 @@ private constructor( "NewSubscriptionPackageWithAllocationPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, packageWithAllocationConfig=$packageWithAllocationConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionTierWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_with_proration_config") - @ExcludeMissing - private val tieredWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredWithProrationConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_with_proration_config") + @ExcludeMissing + tieredWithProrationConfig: JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredWithProrationConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -92461,35 +95644,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionTierWithProrationPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredWithProrationConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -92970,10 +96133,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionTierWithProrationPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredWithProrationConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -93206,28 +96395,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredWithProrationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): TieredWithProrationConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -93280,7 +96464,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithProrationConfig = - TieredWithProrationConfig(additionalProperties.toImmutable()) + TieredWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -93305,20 +96499,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -93357,21 +96554,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -93473,10 +96664,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -93609,20 +96812,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -93661,21 +96867,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -93778,10 +96978,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -93915,28 +97127,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -93983,7 +97190,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -94021,65 +97238,99 @@ private constructor( "NewSubscriptionTierWithProrationPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredWithProrationConfig=$tieredWithProrationConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionUnitWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("unit_with_proration_config") - @ExcludeMissing - private val unitWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val unitWithProrationConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("unit_with_proration_config") + @ExcludeMissing + unitWithProrationConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + unitWithProrationConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -94393,35 +97644,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionUnitWithProrationPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - unitWithProrationConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -94900,10 +98131,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionUnitWithProrationPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + unitWithProrationConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -95136,28 +98393,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitWithProrationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): UnitWithProrationConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -95210,7 +98462,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithProrationConfig = - UnitWithProrationConfig(additionalProperties.toImmutable()) + UnitWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): UnitWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -95235,20 +98497,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -95287,21 +98552,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -95403,10 +98662,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -95539,20 +98810,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -95591,21 +98865,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -95708,10 +98976,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -95845,28 +99125,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -95913,7 +99188,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -95951,65 +99236,99 @@ private constructor( "NewSubscriptionUnitWithProrationPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, unitWithProrationConfig=$unitWithProrationConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionGroupedAllocationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("grouped_allocation_config") - @ExcludeMissing - private val groupedAllocationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val groupedAllocationConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("grouped_allocation_config") + @ExcludeMissing + groupedAllocationConfig: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + groupedAllocationConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -96323,35 +99642,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionGroupedAllocationPrice = apply { - if (validated) { - return@apply - } - - cadence() - groupedAllocationConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -96830,10 +100129,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionGroupedAllocationPrice = apply { + if (validated) { + return@apply + } + + cadence() + groupedAllocationConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -96965,28 +100290,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedAllocationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedAllocationConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -97039,7 +100359,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedAllocationConfig = - GroupedAllocationConfig(additionalProperties.toImmutable()) + GroupedAllocationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedAllocationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -97165,20 +100495,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -97217,21 +100550,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -97333,10 +100660,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -97469,20 +100808,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -97521,21 +100863,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -97638,10 +100974,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -97775,28 +101123,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -97843,7 +101186,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -97881,66 +101234,101 @@ private constructor( "NewSubscriptionGroupedAllocationPrice{cadence=$cadence, groupedAllocationConfig=$groupedAllocationConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionGroupedWithProratedMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("grouped_with_prorated_minimum_config") - @ExcludeMissing + private val cadence: JsonField, private val groupedWithProratedMinimumConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("grouped_with_prorated_minimum_config") + @ExcludeMissing + groupedWithProratedMinimumConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + groupedWithProratedMinimumConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -98256,35 +101644,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionGroupedWithProratedMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - groupedWithProratedMinimumConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -98784,10 +102152,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionGroupedWithProratedMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + groupedWithProratedMinimumConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -98919,28 +102313,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedWithProratedMinimumConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): GroupedWithProratedMinimumConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -98994,7 +102383,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithProratedMinimumConfig = - GroupedWithProratedMinimumConfig(additionalProperties.toImmutable()) + GroupedWithProratedMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedWithProratedMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -99121,20 +102520,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -99173,21 +102575,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -99289,10 +102685,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -99425,20 +102833,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -99477,21 +102888,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -99594,10 +102999,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -99731,28 +103148,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -99799,7 +103211,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -99837,65 +103259,99 @@ private constructor( "NewSubscriptionGroupedWithProratedMinimumPrice{cadence=$cadence, groupedWithProratedMinimumConfig=$groupedWithProratedMinimumConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionBulkWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("bulk_with_proration_config") - @ExcludeMissing - private val bulkWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bulkWithProrationConfig: JsonField, + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bulk_with_proration_config") + @ExcludeMissing + bulkWithProrationConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + bulkWithProrationConfig, + cadence, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -100209,35 +103665,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionBulkWithProrationPrice = apply { - if (validated) { - return@apply - } - - bulkWithProrationConfig().validate() - cadence() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -100716,32 +104152,53 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewSubscriptionBulkWithProrationPrice = apply { + if (validated) { + return@apply + } + + bulkWithProrationConfig().validate() + cadence() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + class BulkWithProrationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkWithProrationConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -100794,7 +104251,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): BulkWithProrationConfig = - BulkWithProrationConfig(additionalProperties.toImmutable()) + BulkWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BulkWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -101051,20 +104518,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -101103,21 +104573,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -101219,10 +104683,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -101355,20 +104831,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -101407,21 +104886,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -101524,10 +104997,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -101661,28 +105146,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -101729,7 +105209,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -101767,66 +105257,102 @@ private constructor( "NewSubscriptionBulkWithProrationPrice{bulkWithProrationConfig=$bulkWithProrationConfig, cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionScalableMatrixWithUnitPricingPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("scalable_matrix_with_unit_pricing_config") - @ExcludeMissing + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, private val scalableMatrixWithUnitPricingConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("scalable_matrix_with_unit_pricing_config") + @ExcludeMissing + scalableMatrixWithUnitPricingConfig: + JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + scalableMatrixWithUnitPricingConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -102143,35 +105669,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionScalableMatrixWithUnitPricingPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - scalableMatrixWithUnitPricingConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -102674,10 +106180,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionScalableMatrixWithUnitPricingPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + scalableMatrixWithUnitPricingConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -102914,28 +106446,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ScalableMatrixWithUnitPricingConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): ScalableMatrixWithUnitPricingConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -102990,7 +106517,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithUnitPricingConfig = - ScalableMatrixWithUnitPricingConfig(additionalProperties.toImmutable()) + ScalableMatrixWithUnitPricingConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): ScalableMatrixWithUnitPricingConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -103015,20 +106552,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -103067,21 +106607,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -103183,10 +106717,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -103319,20 +106865,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -103371,21 +106920,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -103488,10 +107031,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -103625,28 +107180,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -103693,7 +107243,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -103731,66 +107291,102 @@ private constructor( "NewSubscriptionScalableMatrixWithUnitPricingPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, scalableMatrixWithUnitPricingConfig=$scalableMatrixWithUnitPricingConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionScalableMatrixWithTieredPricingPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("scalable_matrix_with_tiered_pricing_config") - @ExcludeMissing + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, private val scalableMatrixWithTieredPricingConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("scalable_matrix_with_tiered_pricing_config") + @ExcludeMissing + scalableMatrixWithTieredPricingConfig: + JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + scalableMatrixWithTieredPricingConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -104107,35 +107703,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionScalableMatrixWithTieredPricingPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - scalableMatrixWithTieredPricingConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -104639,10 +108215,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionScalableMatrixWithTieredPricingPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + scalableMatrixWithTieredPricingConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -104879,28 +108481,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ScalableMatrixWithTieredPricingConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ScalableMatrixWithTieredPricingConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -104957,10 +108554,20 @@ private constructor( */ fun build(): ScalableMatrixWithTieredPricingConfig = ScalableMatrixWithTieredPricingConfig( - additionalProperties.toImmutable() + additionalProperties.toMutableMap() ) } + private var validated: Boolean = false + + fun validate(): ScalableMatrixWithTieredPricingConfig = apply { + if (validated) { + return@apply + } + + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -104983,20 +108590,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -105035,21 +108645,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -105151,10 +108755,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -105287,20 +108903,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -105339,21 +108958,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -105456,10 +109069,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -105593,28 +109218,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -105661,7 +109281,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -105699,65 +109329,100 @@ private constructor( "NewSubscriptionScalableMatrixWithTieredPricingPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, scalableMatrixWithTieredPricingConfig=$scalableMatrixWithTieredPricingConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionCumulativeGroupedBulkPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("cumulative_grouped_bulk_config") - @ExcludeMissing - private val cumulativeGroupedBulkConfig: JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val cumulativeGroupedBulkConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("cumulative_grouped_bulk_config") + @ExcludeMissing + cumulativeGroupedBulkConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + cumulativeGroupedBulkConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -106071,35 +109736,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionCumulativeGroupedBulkPrice = apply { - if (validated) { - return@apply - } - - cadence() - cumulativeGroupedBulkConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -106587,10 +110232,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionCumulativeGroupedBulkPrice = apply { + if (validated) { + return@apply + } + + cadence() + cumulativeGroupedBulkConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -106722,28 +110393,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CumulativeGroupedBulkConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): CumulativeGroupedBulkConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -106797,7 +110463,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): CumulativeGroupedBulkConfig = - CumulativeGroupedBulkConfig(additionalProperties.toImmutable()) + CumulativeGroupedBulkConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): CumulativeGroupedBulkConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -106923,20 +110599,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -106975,21 +110654,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -107091,10 +110764,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -107227,20 +110912,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -107279,21 +110967,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -107396,10 +111078,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -107533,28 +111227,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -107601,7 +111290,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -107639,65 +111338,100 @@ private constructor( "NewSubscriptionCumulativeGroupedBulkPrice{cadence=$cadence, cumulativeGroupedBulkConfig=$cumulativeGroupedBulkConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionMaxGroupTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("max_group_tiered_package_config") - @ExcludeMissing - private val maxGroupTieredPackageConfig: JsonField = - JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val maxGroupTieredPackageConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("max_group_tiered_package_config") + @ExcludeMissing + maxGroupTieredPackageConfig: JsonField = + JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + maxGroupTieredPackageConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -108011,35 +111745,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionMaxGroupTieredPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - maxGroupTieredPackageConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -108527,10 +112241,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionMaxGroupTieredPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + maxGroupTieredPackageConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -108662,28 +112402,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MaxGroupTieredPackageConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MaxGroupTieredPackageConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -108737,7 +112472,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MaxGroupTieredPackageConfig = - MaxGroupTieredPackageConfig(additionalProperties.toImmutable()) + MaxGroupTieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): MaxGroupTieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -108863,20 +112608,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -108915,21 +112663,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -109031,10 +112773,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -109167,20 +112921,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -109219,21 +112976,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -109336,10 +113087,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -109473,28 +113236,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -109541,7 +113299,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -109579,66 +113347,101 @@ private constructor( "NewSubscriptionMaxGroupTieredPackagePrice{cadence=$cadence, itemId=$itemId, maxGroupTieredPackageConfig=$maxGroupTieredPackageConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionGroupedWithMeteredMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("grouped_with_metered_minimum_config") - @ExcludeMissing + private val cadence: JsonField, private val groupedWithMeteredMinimumConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("grouped_with_metered_minimum_config") + @ExcludeMissing + groupedWithMeteredMinimumConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + groupedWithMeteredMinimumConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -109954,35 +113757,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionGroupedWithMeteredMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - groupedWithMeteredMinimumConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -110481,10 +114264,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionGroupedWithMeteredMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + groupedWithMeteredMinimumConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -110616,28 +114425,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedWithMeteredMinimumConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedWithMeteredMinimumConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -110691,7 +114495,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithMeteredMinimumConfig = - GroupedWithMeteredMinimumConfig(additionalProperties.toImmutable()) + GroupedWithMeteredMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedWithMeteredMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -110818,20 +114632,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -110870,21 +114687,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -110986,10 +114797,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -111122,20 +114945,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -111174,21 +115000,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -111291,10 +115111,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -111428,28 +115260,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -111496,7 +115323,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -111534,65 +115371,100 @@ private constructor( "NewSubscriptionGroupedWithMeteredMinimumPrice{cadence=$cadence, groupedWithMeteredMinimumConfig=$groupedWithMeteredMinimumConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionMatrixWithDisplayNamePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("matrix_with_display_name_config") - @ExcludeMissing - private val matrixWithDisplayNameConfig: JsonField = - JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val matrixWithDisplayNameConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("matrix_with_display_name_config") + @ExcludeMissing + matrixWithDisplayNameConfig: JsonField = + JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + matrixWithDisplayNameConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -111906,35 +115778,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionMatrixWithDisplayNamePrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - matrixWithDisplayNameConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -112422,10 +116274,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionMatrixWithDisplayNamePrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + matrixWithDisplayNameConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -112557,28 +116435,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MatrixWithDisplayNameConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): MatrixWithDisplayNameConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -112632,7 +116505,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MatrixWithDisplayNameConfig = - MatrixWithDisplayNameConfig(additionalProperties.toImmutable()) + MatrixWithDisplayNameConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): MatrixWithDisplayNameConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -112758,20 +116641,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -112810,21 +116696,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -112926,10 +116806,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -113062,20 +116954,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -113114,21 +117009,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -113231,10 +117120,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -113368,28 +117269,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -113436,7 +117332,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -113474,65 +117380,100 @@ private constructor( "NewSubscriptionMatrixWithDisplayNamePrice{cadence=$cadence, itemId=$itemId, matrixWithDisplayNameConfig=$matrixWithDisplayNameConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionGroupedTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("grouped_tiered_package_config") - @ExcludeMissing - private val groupedTieredPackageConfig: JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val groupedTieredPackageConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("grouped_tiered_package_config") + @ExcludeMissing + groupedTieredPackageConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + groupedTieredPackageConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -113846,35 +117787,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionGroupedTieredPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - groupedTieredPackageConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -114357,10 +118278,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionGroupedTieredPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + groupedTieredPackageConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -114492,28 +118439,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedTieredPackageConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): GroupedTieredPackageConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -114566,7 +118508,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredPackageConfig = - GroupedTieredPackageConfig(additionalProperties.toImmutable()) + GroupedTieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedTieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -114692,20 +118644,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -114744,21 +118699,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -114860,10 +118809,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -114996,20 +118957,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -115048,21 +119012,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -115165,10 +119123,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -115302,28 +119272,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -115370,7 +119335,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCreateResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCreateResponse.kt index 592833cb..b78490fc 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCreateResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCreateResponse.kt @@ -20,98 +20,142 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class SubscriptionCreateResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("active_plan_phase_order") - @ExcludeMissing - private val activePlanPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_intervals") - @ExcludeMissing - private val adjustmentIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_anchor_configuration") - @ExcludeMissing - private val billingCycleAnchorConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("default_invoice_memo") - @ExcludeMissing - private val defaultInvoiceMemo: JsonField = JsonMissing.of(), - @JsonProperty("discount_intervals") - @ExcludeMissing - private val discountIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_schedule") - @ExcludeMissing - private val fixedFeeQuantitySchedule: JsonField> = - JsonMissing.of(), - @JsonProperty("invoicing_threshold") - @ExcludeMissing - private val invoicingThreshold: JsonField = JsonMissing.of(), - @JsonProperty("maximum_intervals") - @ExcludeMissing - private val maximumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum_intervals") - @ExcludeMissing - private val minimumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("plan") @ExcludeMissing private val plan: JsonField = JsonMissing.of(), - @JsonProperty("price_intervals") - @ExcludeMissing - private val priceIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("redeemed_coupon") - @ExcludeMissing - private val redeemedCoupon: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("trial_info") - @ExcludeMissing - private val trialInfo: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val activePlanPhaseOrder: JsonField, + private val adjustmentIntervals: JsonField>, + private val autoCollection: JsonField, + private val billingCycleAnchorConfiguration: JsonField, + private val billingCycleDay: JsonField, + private val createdAt: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val customer: JsonField, + private val defaultInvoiceMemo: JsonField, + private val discountIntervals: JsonField>, + private val endDate: JsonField, + private val fixedFeeQuantitySchedule: JsonField>, + private val invoicingThreshold: JsonField, + private val maximumIntervals: JsonField>, + private val metadata: JsonField, + private val minimumIntervals: JsonField>, + private val netTerms: JsonField, + private val plan: JsonField, + private val priceIntervals: JsonField>, + private val redeemedCoupon: JsonField, + private val startDate: JsonField, + private val status: JsonField, + private val trialInfo: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("active_plan_phase_order") + @ExcludeMissing + activePlanPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_intervals") + @ExcludeMissing + adjustmentIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_anchor_configuration") + @ExcludeMissing + billingCycleAnchorConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("customer") @ExcludeMissing customer: JsonField = JsonMissing.of(), + @JsonProperty("default_invoice_memo") + @ExcludeMissing + defaultInvoiceMemo: JsonField = JsonMissing.of(), + @JsonProperty("discount_intervals") + @ExcludeMissing + discountIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_schedule") + @ExcludeMissing + fixedFeeQuantitySchedule: JsonField> = JsonMissing.of(), + @JsonProperty("invoicing_threshold") + @ExcludeMissing + invoicingThreshold: JsonField = JsonMissing.of(), + @JsonProperty("maximum_intervals") + @ExcludeMissing + maximumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("metadata") @ExcludeMissing metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum_intervals") + @ExcludeMissing + minimumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("plan") @ExcludeMissing plan: JsonField = JsonMissing.of(), + @JsonProperty("price_intervals") + @ExcludeMissing + priceIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("redeemed_coupon") + @ExcludeMissing + redeemedCoupon: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + @JsonProperty("trial_info") + @ExcludeMissing + trialInfo: JsonField = JsonMissing.of(), + ) : this( + id, + activePlanPhaseOrder, + adjustmentIntervals, + autoCollection, + billingCycleAnchorConfiguration, + billingCycleDay, + createdAt, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + customer, + defaultInvoiceMemo, + discountIntervals, + endDate, + fixedFeeQuantitySchedule, + invoicingThreshold, + maximumIntervals, + metadata, + minimumIntervals, + netTerms, + plan, + priceIntervals, + redeemedCoupon, + startDate, + status, + trialInfo, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -566,44 +610,15 @@ private constructor( */ @JsonProperty("trial_info") @ExcludeMissing fun _trialInfo(): JsonField = trialInfo + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): SubscriptionCreateResponse = apply { - if (validated) { - return@apply - } - - id() - activePlanPhaseOrder() - adjustmentIntervals().forEach { it.validate() } - autoCollection() - billingCycleAnchorConfiguration().validate() - billingCycleDay() - createdAt() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - customer().validate() - defaultInvoiceMemo() - discountIntervals().forEach { it.validate() } - endDate() - fixedFeeQuantitySchedule().forEach { it.validate() } - invoicingThreshold() - maximumIntervals().forEach { it.validate() } - metadata().validate() - minimumIntervals().forEach { it.validate() } - netTerms() - plan().validate() - priceIntervals().forEach { it.validate() } - redeemedCoupon().ifPresent { it.validate() } - startDate() - status() - trialInfo().validate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1330,31 +1345,72 @@ private constructor( checkRequired("startDate", startDate), checkRequired("status", status), checkRequired("trialInfo", trialInfo), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): SubscriptionCreateResponse = apply { + if (validated) { + return@apply + } + + id() + activePlanPhaseOrder() + adjustmentIntervals().forEach { it.validate() } + autoCollection() + billingCycleAnchorConfiguration().validate() + billingCycleDay() + createdAt() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + customer().validate() + defaultInvoiceMemo() + discountIntervals().forEach { it.validate() } + endDate() + fixedFeeQuantitySchedule().forEach { it.validate() } + invoicingThreshold() + maximumIntervals().forEach { it.validate() } + metadata().validate() + minimumIntervals().forEach { it.validate() } + netTerms() + plan().validate() + priceIntervals().forEach { it.validate() } + redeemedCoupon().ifPresent { it.validate() } + startDate() + status() + trialInfo().validate() + validated = true + } + class AdjustmentInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment") - @ExcludeMissing - private val adjustment: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustment: JsonField, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment") + @ExcludeMissing + adjustment: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(id, adjustment, appliesToPriceIntervalIds, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -1437,24 +1493,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AdjustmentInterval = apply { - if (validated) { - return@apply - } - - id() - adjustment().validate() - appliesToPriceIntervalIds() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1658,10 +1705,25 @@ private constructor( }, checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AdjustmentInterval = apply { + if (validated) { + return@apply + } + + id() + adjustment().validate() + appliesToPriceIntervalIds() + endDate() + startDate() + validated = true + } + @JsonDeserialize(using = Adjustment.Deserializer::class) @JsonSerialize(using = Adjustment.Serializer::class) class Adjustment @@ -1950,35 +2012,50 @@ private constructor( } } - @NoAutoDetect class PlanPhaseUsageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + usageDiscount, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2105,26 +2182,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseUsageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2362,10 +2428,27 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseUsageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + usageDiscount() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2486,35 +2569,50 @@ private constructor( "PlanPhaseUsageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, usageDiscount=$usageDiscount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseAmountDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amountDiscount, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2641,26 +2739,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseAmountDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amountDiscount() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2898,10 +2985,27 @@ private constructor( checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseAmountDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amountDiscount() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3022,35 +3126,50 @@ private constructor( "PlanPhaseAmountDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhasePercentageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val percentageDiscount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + percentageDiscount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3178,26 +3297,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhasePercentageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - percentageDiscount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3437,10 +3545,27 @@ private constructor( checkRequired("percentageDiscount", percentageDiscount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhasePercentageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + percentageDiscount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3561,38 +3686,55 @@ private constructor( "PlanPhasePercentageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, percentageDiscount=$percentageDiscount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMinimumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val itemId: JsonField, + private val minimumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + itemId, + minimumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3736,27 +3878,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMinimumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - itemId() - minimumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4010,10 +4140,28 @@ private constructor( checkRequired("minimumAmount", minimumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMinimumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + itemId() + minimumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4134,35 +4282,50 @@ private constructor( "PlanPhaseMinimumAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, itemId=$itemId, minimumAmount=$minimumAmount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMaximumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val maximumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + maximumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4289,26 +4452,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMaximumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - maximumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4545,10 +4697,27 @@ private constructor( checkRequired("maximumAmount", maximumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMaximumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + maximumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4688,19 +4857,21 @@ private constructor( "AdjustmentInterval{id=$id, adjustment=$adjustment, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleAnchorConfiguration - @JsonCreator private constructor( - @JsonProperty("day") @ExcludeMissing private val day: JsonField = JsonMissing.of(), - @JsonProperty("month") - @ExcludeMissing - private val month: JsonField = JsonMissing.of(), - @JsonProperty("year") @ExcludeMissing private val year: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val day: JsonField, + private val month: JsonField, + private val year: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("day") @ExcludeMissing day: JsonField = JsonMissing.of(), + @JsonProperty("month") @ExcludeMissing month: JsonField = JsonMissing.of(), + @JsonProperty("year") @ExcludeMissing year: JsonField = JsonMissing.of(), + ) : this(day, month, year, mutableMapOf()) + /** * The day of the month on which the billing cycle is anchored. If the maximum number of * days in a month is greater than this value, the last day of the month is the billing @@ -4751,22 +4922,15 @@ private constructor( */ @JsonProperty("year") @ExcludeMissing fun _year(): JsonField = year + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleAnchorConfiguration = apply { - if (validated) { - return@apply - } - - day() - month() - year() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4905,10 +5069,23 @@ private constructor( checkRequired("day", day), month, year, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleAnchorConfiguration = apply { + if (validated) { + return@apply + } + + day() + month() + year() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5104,32 +5281,47 @@ private constructor( } } - @NoAutoDetect class AmountDiscountInterval - @JsonCreator private constructor( - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + amountDiscount, + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + mutableMapOf(), + ) + /** * Only available if discount_type is `amount`. * @@ -5243,25 +5435,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AmountDiscountInterval = apply { - if (validated) { - return@apply - } - - amountDiscount() - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5475,10 +5657,26 @@ private constructor( checkRequired("discountType", discountType), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AmountDiscountInterval = apply { + if (validated) { + return@apply + } + + amountDiscount() + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -5597,32 +5795,47 @@ private constructor( "AmountDiscountInterval{amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PercentageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val percentageDiscount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + percentageDiscount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -5736,25 +5949,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PercentageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - percentageDiscount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5972,10 +6175,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("percentageDiscount", percentageDiscount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PercentageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + percentageDiscount() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6094,32 +6313,47 @@ private constructor( "PercentageDiscountInterval{appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, percentageDiscount=$percentageDiscount, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class UsageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + usageDiscount, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -6234,25 +6468,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UsageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6468,10 +6692,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("startDate", startDate), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UsageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + usageDiscount() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6591,26 +6831,29 @@ private constructor( } } - @NoAutoDetect class FixedFeeQuantitySchedule - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(endDate, priceId, quantity, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -6668,23 +6911,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantitySchedule = apply { - if (validated) { - return@apply - } - - endDate() - priceId() - quantity() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6811,10 +7046,24 @@ private constructor( checkRequired("priceId", priceId), checkRequired("quantity", quantity), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantitySchedule = apply { + if (validated) { + return@apply + } + + endDate() + priceId() + quantity() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6833,29 +7082,42 @@ private constructor( "FixedFeeQuantitySchedule{endDate=$endDate, priceId=$priceId, quantity=$quantity, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MaximumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val maximumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + maximumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this maximum interval applies to. * @@ -6948,24 +7210,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MaximumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - maximumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7153,10 +7406,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("maximumAmount", maximumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MaximumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + maximumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7180,27 +7448,20 @@ private constructor( * dictionary. Individual keys can be removed by setting the value to `null`, and the entire * metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7244,7 +7505,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -7264,29 +7535,42 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class MinimumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val minimumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + minimumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this minimum interval applies to. * @@ -7379,24 +7663,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MinimumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - minimumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7584,10 +7859,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("minimumAmount", minimumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MinimumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + minimumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7610,43 +7900,62 @@ private constructor( * The Price Interval resource represents a period of time for which a price will bill on a * subscription. A subscription’s price intervals define its billing behavior. */ - @NoAutoDetect class PriceInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("filter") - @ExcludeMissing - private val filter: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_transitions") - @ExcludeMissing - private val fixedFeeQuantityTransitions: JsonField> = - JsonMissing.of(), - @JsonProperty("price") - @ExcludeMissing - private val price: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_customer_ids") - @ExcludeMissing - private val usageCustomerIds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billingCycleDay: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val endDate: JsonField, + private val filter: JsonField, + private val fixedFeeQuantityTransitions: JsonField>, + private val price: JsonField, + private val startDate: JsonField, + private val usageCustomerIds: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("filter") @ExcludeMissing filter: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_transitions") + @ExcludeMissing + fixedFeeQuantityTransitions: JsonField> = + JsonMissing.of(), + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_customer_ids") + @ExcludeMissing + usageCustomerIds: JsonField> = JsonMissing.of(), + ) : this( + id, + billingCycleDay, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + endDate, + filter, + fixedFeeQuantityTransitions, + price, + startDate, + usageCustomerIds, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -7844,29 +8153,15 @@ private constructor( @ExcludeMissing fun _usageCustomerIds(): JsonField> = usageCustomerIds + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PriceInterval = apply { - if (validated) { - return@apply - } - - id() - billingCycleDay() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - endDate() - filter() - fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } - price().validate() - startDate() - usageCustomerIds() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8351,27 +8646,51 @@ private constructor( checkRequired("price", price), checkRequired("startDate", startDate), checkRequired("usageCustomerIds", usageCustomerIds).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): PriceInterval = apply { + if (validated) { + return@apply + } + + id() + billingCycleDay() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + endDate() + filter() + fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } + price().validate() + startDate() + usageCustomerIds() + validated = true + } + class FixedFeeQuantityTransition - @JsonCreator private constructor( - @JsonProperty("effective_date") - @ExcludeMissing - private val effectiveDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val effectiveDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("effective_date") + @ExcludeMissing + effectiveDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") + @ExcludeMissing + priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + ) : this(effectiveDate, priceId, quantity, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -8418,22 +8737,15 @@ private constructor( */ @JsonProperty("quantity") @ExcludeMissing fun _quantity(): JsonField = quantity + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantityTransition = apply { - if (validated) { - return@apply - } - - effectiveDate() - priceId() - quantity() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8547,10 +8859,23 @@ private constructor( checkRequired("effectiveDate", effectiveDate), checkRequired("priceId", priceId), checkRequired("quantity", quantity), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantityTransition = apply { + if (validated) { + return@apply + } + + effectiveDate() + priceId() + quantity() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8587,23 +8912,27 @@ private constructor( "PriceInterval{id=$id, billingCycleDay=$billingCycleDay, currentBillingPeriodEndDate=$currentBillingPeriodEndDate, currentBillingPeriodStartDate=$currentBillingPeriodStartDate, endDate=$endDate, filter=$filter, fixedFeeQuantityTransitions=$fixedFeeQuantityTransitions, price=$price, startDate=$startDate, usageCustomerIds=$usageCustomerIds, additionalProperties=$additionalProperties}" } - @NoAutoDetect class RedeemedCoupon - @JsonCreator private constructor( - @JsonProperty("coupon_id") - @ExcludeMissing - private val couponId: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val couponId: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("coupon_id") + @ExcludeMissing + couponId: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(couponId, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -8648,22 +8977,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): RedeemedCoupon = apply { - if (validated) { - return@apply - } - - couponId() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8774,10 +9096,23 @@ private constructor( checkRequired("couponId", couponId), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): RedeemedCoupon = apply { + if (validated) { + return@apply + } + + couponId() + endDate() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8899,17 +9234,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TrialInfo - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of() + ) : this(endDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -8926,20 +9263,15 @@ private constructor( @ExcludeMissing fun _endDate(): JsonField = endDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TrialInfo = apply { - if (validated) { - return@apply - } - - endDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9014,7 +9346,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): TrialInfo = - TrialInfo(checkRequired("endDate", endDate), additionalProperties.toImmutable()) + TrialInfo(checkRequired("endDate", endDate), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TrialInfo = apply { + if (validated) { + return@apply + } + + endDate() + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchCostsParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchCostsParams.kt index f6b3bb0e..3f1c79d7 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchCostsParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchCostsParams.kt @@ -5,7 +5,6 @@ package com.withorb.api.models import com.fasterxml.jackson.annotation.JsonCreator import com.withorb.api.core.Enum import com.withorb.api.core.JsonField -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -61,29 +60,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> subscriptionId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - currency?.let { put("currency", it) } - timeframeEnd?.let { - put("timeframe_end", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - timeframeStart?.let { - put("timeframe_start", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - viewMode?.let { put("view_mode", it.toString()) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -100,7 +76,6 @@ private constructor( } /** A builder for [SubscriptionFetchCostsParams]. */ - @NoAutoDetect class Builder internal constructor() { private var subscriptionId: String? = null @@ -278,6 +253,29 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> subscriptionId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + currency?.let { put("currency", it) } + timeframeEnd?.let { + put("timeframe_end", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + timeframeStart?.let { + put("timeframe_start", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + viewMode?.let { put("view_mode", it.toString()) } + putAll(additionalQueryParams) + } + .build() + /** * Controls whether Orb returns cumulative costs since the start of the billing period, or * incremental day-by-day costs. If your customer has minimums or discounts, it's strongly diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchCostsResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchCostsResponse.kt index cfd53ae4..7264a161 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchCostsResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchCostsResponse.kt @@ -10,27 +10,27 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class SubscriptionFetchCostsResponse -@JsonCreator private constructor( - @JsonProperty("data") - @ExcludeMissing - private val data: JsonField> = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val data: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") @ExcludeMissing data: JsonField> = JsonMissing.of() + ) : this(data, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -44,20 +44,15 @@ private constructor( */ @JsonProperty("data") @ExcludeMissing fun _data(): JsonField> = data + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): SubscriptionFetchCostsResponse = apply { - if (validated) { - return@apply - } - - data().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -146,33 +141,48 @@ private constructor( fun build(): SubscriptionFetchCostsResponse = SubscriptionFetchCostsResponse( checkRequired("data", data).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): SubscriptionFetchCostsResponse = apply { + if (validated) { + return@apply + } + + data().forEach { it.validate() } + validated = true + } + class Data - @JsonCreator private constructor( - @JsonProperty("per_price_costs") - @ExcludeMissing - private val perPriceCosts: JsonField> = JsonMissing.of(), - @JsonProperty("subtotal") - @ExcludeMissing - private val subtotal: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_end") - @ExcludeMissing - private val timeframeEnd: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_start") - @ExcludeMissing - private val timeframeStart: JsonField = JsonMissing.of(), - @JsonProperty("total") - @ExcludeMissing - private val total: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val perPriceCosts: JsonField>, + private val subtotal: JsonField, + private val timeframeEnd: JsonField, + private val timeframeStart: JsonField, + private val total: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("per_price_costs") + @ExcludeMissing + perPriceCosts: JsonField> = JsonMissing.of(), + @JsonProperty("subtotal") + @ExcludeMissing + subtotal: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_end") + @ExcludeMissing + timeframeEnd: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_start") + @ExcludeMissing + timeframeStart: JsonField = JsonMissing.of(), + @JsonProperty("total") @ExcludeMissing total: JsonField = JsonMissing.of(), + ) : this(perPriceCosts, subtotal, timeframeEnd, timeframeStart, total, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -251,24 +261,15 @@ private constructor( */ @JsonProperty("total") @ExcludeMissing fun _total(): JsonField = total + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Data = apply { - if (validated) { - return@apply - } - - perPriceCosts().forEach { it.validate() } - subtotal() - timeframeEnd() - timeframeStart() - total() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -429,33 +430,50 @@ private constructor( checkRequired("timeframeEnd", timeframeEnd), checkRequired("timeframeStart", timeframeStart), checkRequired("total", total), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): Data = apply { + if (validated) { + return@apply + } + + perPriceCosts().forEach { it.validate() } + subtotal() + timeframeEnd() + timeframeStart() + total() + validated = true + } + class PerPriceCost - @JsonCreator private constructor( - @JsonProperty("price") - @ExcludeMissing - private val price: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("subtotal") - @ExcludeMissing - private val subtotal: JsonField = JsonMissing.of(), - @JsonProperty("total") - @ExcludeMissing - private val total: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val price: JsonField, + private val priceId: JsonField, + private val subtotal: JsonField, + private val total: JsonField, + private val quantity: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("price_id") + @ExcludeMissing + priceId: JsonField = JsonMissing.of(), + @JsonProperty("subtotal") + @ExcludeMissing + subtotal: JsonField = JsonMissing.of(), + @JsonProperty("total") @ExcludeMissing total: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + ) : this(price, priceId, subtotal, total, quantity, mutableMapOf()) + /** * The price object * @@ -537,24 +555,15 @@ private constructor( */ @JsonProperty("quantity") @ExcludeMissing fun _quantity(): JsonField = quantity + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PerPriceCost = apply { - if (validated) { - return@apply - } - - price().validate() - priceId() - subtotal() - total() - quantity() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -863,10 +872,25 @@ private constructor( checkRequired("subtotal", subtotal), checkRequired("total", total), quantity, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PerPriceCost = apply { + if (validated) { + return@apply + } + + price().validate() + priceId() + subtotal() + total() + quantity() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchParams.kt index 40278d76..ac66b2f8 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -26,16 +25,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> subscriptionId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - fun toBuilder() = Builder().from(this) companion object { @@ -52,7 +41,6 @@ private constructor( } /** A builder for [SubscriptionFetchParams]. */ - @NoAutoDetect class Builder internal constructor() { private var subscriptionId: String? = null @@ -186,6 +174,16 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> subscriptionId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchSchedulePage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchSchedulePage.kt index 1c851969..a5568358 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchSchedulePage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchSchedulePage.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.blocking.SubscriptionService +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.stream.Stream @@ -88,18 +86,20 @@ private constructor( ) = SubscriptionFetchSchedulePage(subscriptionsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") - private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") + data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -113,9 +113,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -189,7 +195,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchSchedulePageAsync.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchSchedulePageAsync.kt index a6f26ca4..178cb72c 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchSchedulePageAsync.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchSchedulePageAsync.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.async.SubscriptionServiceAsync +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.concurrent.CompletableFuture @@ -90,18 +88,20 @@ private constructor( ) = SubscriptionFetchSchedulePageAsync(subscriptionsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") - private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") + data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -115,9 +115,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -191,7 +197,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchScheduleParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchScheduleParams.kt index 637de028..227b32c0 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchScheduleParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchScheduleParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -54,35 +53,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> subscriptionId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - cursor?.let { put("cursor", it) } - limit?.let { put("limit", it.toString()) } - startDateGt?.let { - put("start_date[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - startDateGte?.let { - put("start_date[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - startDateLt?.let { - put("start_date[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - startDateLte?.let { - put("start_date[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -100,7 +70,6 @@ private constructor( } /** A builder for [SubscriptionFetchScheduleParams]. */ - @NoAutoDetect class Builder internal constructor() { private var subscriptionId: String? = null @@ -300,6 +269,35 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> subscriptionId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + cursor?.let { put("cursor", it) } + limit?.let { put("limit", it.toString()) } + startDateGt?.let { + put("start_date[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + startDateGte?.let { + put("start_date[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + startDateLt?.let { + put("start_date[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + startDateLte?.let { + put("start_date[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + putAll(additionalQueryParams) + } + .build() + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchScheduleResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchScheduleResponse.kt index e34378c3..ea552356 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchScheduleResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchScheduleResponse.kt @@ -10,33 +10,37 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class SubscriptionFetchScheduleResponse -@JsonCreator private constructor( - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("plan") @ExcludeMissing private val plan: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val createdAt: JsonField, + private val endDate: JsonField, + private val plan: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("plan") @ExcludeMissing plan: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(createdAt, endDate, plan, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -93,23 +97,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): SubscriptionFetchScheduleResponse = apply { - if (validated) { - return@apply - } - - createdAt() - endDate() - plan().validate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -236,25 +232,41 @@ private constructor( checkRequired("endDate", endDate), checkRequired("plan", plan), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): SubscriptionFetchScheduleResponse = apply { + if (validated) { + return@apply + } + + createdAt() + endDate() + plan().validate() + startDate() + validated = true + } + class Plan - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("external_plan_id") - @ExcludeMissing - private val externalPlanId: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val externalPlanId: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("external_plan_id") + @ExcludeMissing + externalPlanId: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, externalPlanId, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -302,22 +314,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Plan = apply { - if (validated) { - return@apply - } - - id() - externalPlanId() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -441,10 +446,23 @@ private constructor( checkRequired("id", id), checkRequired("externalPlanId", externalPlanId), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Plan = apply { + if (validated) { + return@apply + } + + id() + externalPlanId() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchUsageParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchUsageParams.kt index c0ba3e2f..363f8789 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchUsageParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchUsageParams.kt @@ -5,7 +5,6 @@ package com.withorb.api.models import com.fasterxml.jackson.annotation.JsonCreator import com.withorb.api.core.Enum import com.withorb.api.core.JsonField -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers @@ -250,35 +249,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _pathParam(index: Int): String = - when (index) { - 0 -> subscriptionId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - billableMetricId?.let { put("billable_metric_id", it) } - firstDimensionKey?.let { put("first_dimension_key", it) } - firstDimensionValue?.let { put("first_dimension_value", it) } - granularity?.let { put("granularity", it.toString()) } - groupBy?.let { put("group_by", it) } - secondDimensionKey?.let { put("second_dimension_key", it) } - secondDimensionValue?.let { put("second_dimension_value", it) } - timeframeEnd?.let { - put("timeframe_end", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - timeframeStart?.let { - put("timeframe_start", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - viewMode?.let { put("view_mode", it.toString()) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -295,7 +265,6 @@ private constructor( } /** A builder for [SubscriptionFetchUsageParams]. */ - @NoAutoDetect class Builder internal constructor() { private var subscriptionId: String? = null @@ -549,6 +518,35 @@ private constructor( ) } + fun _pathParam(index: Int): String = + when (index) { + 0 -> subscriptionId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + billableMetricId?.let { put("billable_metric_id", it) } + firstDimensionKey?.let { put("first_dimension_key", it) } + firstDimensionValue?.let { put("first_dimension_value", it) } + granularity?.let { put("granularity", it.toString()) } + groupBy?.let { put("group_by", it) } + secondDimensionKey?.let { put("second_dimension_key", it) } + secondDimensionValue?.let { put("second_dimension_value", it) } + timeframeEnd?.let { + put("timeframe_end", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + timeframeStart?.let { + put("timeframe_start", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + viewMode?.let { put("view_mode", it.toString()) } + putAll(additionalQueryParams) + } + .build() + /** This determines the windowing of usage reporting. */ class Granularity @JsonCreator private constructor(private val value: JsonField) : Enum { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionListPage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionListPage.kt index 63b55e22..a7b30ca6 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionListPage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionListPage.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.blocking.SubscriptionService +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.stream.Stream @@ -93,17 +91,19 @@ private constructor( ) = SubscriptionListPage(subscriptionsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -116,9 +116,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -187,7 +193,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionListPageAsync.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionListPageAsync.kt index 7cdd7565..ca29bef6 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionListPageAsync.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionListPageAsync.kt @@ -10,10 +10,8 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.services.async.SubscriptionServiceAsync +import java.util.Collections import java.util.Objects import java.util.Optional import java.util.concurrent.CompletableFuture @@ -95,17 +93,19 @@ private constructor( ) = SubscriptionListPageAsync(subscriptionsService, params, response) } - @NoAutoDetect - class Response - @JsonCreator - constructor( - @JsonProperty("data") private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + class Response( + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + fun data(): List = data.getNullable("data") ?: listOf() fun paginationMetadata(): PaginationMetadata = @@ -118,9 +118,15 @@ private constructor( fun _paginationMetadata(): Optional> = Optional.ofNullable(paginationMetadata) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) private var validated: Boolean = false @@ -192,7 +198,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): Response = - Response(data, paginationMetadata, additionalProperties.toImmutable()) + Response(data, paginationMetadata, additionalProperties.toMutableMap()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionListParams.kt index ac2d08eb..53227dba 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionListParams.kt @@ -5,7 +5,6 @@ package com.withorb.api.models import com.fasterxml.jackson.annotation.JsonCreator import com.withorb.api.core.Enum import com.withorb.api.core.JsonField -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams @@ -69,32 +68,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = - QueryParams.builder() - .apply { - createdAtGt?.let { - put("created_at[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtGte?.let { - put("created_at[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtLt?.let { - put("created_at[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - createdAtLte?.let { - put("created_at[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) - } - cursor?.let { put("cursor", it) } - customerId?.forEach { put("customer_id[]", it) } - externalCustomerId?.forEach { put("external_customer_id[]", it) } - limit?.let { put("limit", it.toString()) } - status?.let { put("status", it.toString()) } - putAll(additionalQueryParams) - } - .build() - fun toBuilder() = Builder().from(this) companion object { @@ -106,7 +79,6 @@ private constructor( } /** A builder for [SubscriptionListParams]. */ - @NoAutoDetect class Builder internal constructor() { private var createdAtGt: OffsetDateTime? = null @@ -342,6 +314,32 @@ private constructor( ) } + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = + QueryParams.builder() + .apply { + createdAtGt?.let { + put("created_at[gt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtGte?.let { + put("created_at[gte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtLt?.let { + put("created_at[lt]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + createdAtLte?.let { + put("created_at[lte]", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + } + cursor?.let { put("cursor", it) } + customerId?.forEach { put("customer_id[]", it) } + externalCustomerId?.forEach { put("external_customer_id[]", it) } + limit?.let { put("limit", it.toString()) } + status?.let { put("status", it.toString()) } + putAll(additionalQueryParams) + } + .build() + class Status @JsonCreator private constructor(private val value: JsonField) : Enum { /** diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsParams.kt index 3076b27a..fac4e6e4 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsParams.kt @@ -20,17 +20,16 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -194,6 +193,301 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of + * [SubscriptionPriceIntervalsParams]. + * + * The following fields are required: + * ```java + * .subscriptionId() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [SubscriptionPriceIntervalsParams]. */ + class Builder internal constructor() { + + private var subscriptionId: String? = null + private var body: Body.Builder = Body.builder() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from(subscriptionPriceIntervalsParams: SubscriptionPriceIntervalsParams) = + apply { + subscriptionId = subscriptionPriceIntervalsParams.subscriptionId + body = subscriptionPriceIntervalsParams.body.toBuilder() + additionalHeaders = subscriptionPriceIntervalsParams.additionalHeaders.toBuilder() + additionalQueryParams = + subscriptionPriceIntervalsParams.additionalQueryParams.toBuilder() + } + + fun subscriptionId(subscriptionId: String) = apply { this.subscriptionId = subscriptionId } + + /** A list of price intervals to add to the subscription. */ + fun add(add: List) = apply { body.add(add) } + + /** + * Sets [Builder.add] to an arbitrary JSON value. + * + * You should usually call [Builder.add] with a well-typed `List` value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. + */ + fun add(add: JsonField>) = apply { body.add(add) } + + /** + * Adds a single [Add] to [Builder.add]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addAdd(add: Add) = apply { body.addAdd(add) } + + /** A list of adjustments to add to the subscription. */ + fun addAdjustments(addAdjustments: List) = apply { + body.addAdjustments(addAdjustments) + } + + /** + * Sets [Builder.addAdjustments] to an arbitrary JSON value. + * + * You should usually call [Builder.addAdjustments] with a well-typed `List` + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. + */ + fun addAdjustments(addAdjustments: JsonField>) = apply { + body.addAdjustments(addAdjustments) + } + + /** + * Adds a single [AddAdjustment] to [addAdjustments]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addAddAdjustment(addAdjustment: AddAdjustment) = apply { + body.addAddAdjustment(addAdjustment) + } + + /** + * If false, this request will fail if it would void an issued invoice or create a credit + * note. Consider using this as a safety mechanism if you do not expect existing invoices to + * be changed. + */ + fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Boolean?) = apply { + body.allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid) + } + + /** + * Alias for [Builder.allowInvoiceCreditOrVoid]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Boolean) = + allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid as Boolean?) + + /** + * Alias for calling [Builder.allowInvoiceCreditOrVoid] with + * `allowInvoiceCreditOrVoid.orElse(null)`. + */ + fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Optional) = + allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid.getOrNull()) + + /** + * Sets [Builder.allowInvoiceCreditOrVoid] to an arbitrary JSON value. + * + * You should usually call [Builder.allowInvoiceCreditOrVoid] with a well-typed [Boolean] + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. + */ + fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: JsonField) = apply { + body.allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid) + } + + /** A list of price intervals to edit on the subscription. */ + fun edit(edit: List) = apply { body.edit(edit) } + + /** + * Sets [Builder.edit] to an arbitrary JSON value. + * + * You should usually call [Builder.edit] with a well-typed `List` value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. + */ + fun edit(edit: JsonField>) = apply { body.edit(edit) } + + /** + * Adds a single [Edit] to [Builder.edit]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addEdit(edit: Edit) = apply { body.addEdit(edit) } + + /** A list of adjustments to edit on the subscription. */ + fun editAdjustments(editAdjustments: List) = apply { + body.editAdjustments(editAdjustments) + } + + /** + * Sets [Builder.editAdjustments] to an arbitrary JSON value. + * + * You should usually call [Builder.editAdjustments] with a well-typed + * `List` value instead. This method is primarily for setting the field to + * an undocumented or not yet supported value. + */ + fun editAdjustments(editAdjustments: JsonField>) = apply { + body.editAdjustments(editAdjustments) + } + + /** + * Adds a single [EditAdjustment] to [editAdjustments]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addEditAdjustment(editAdjustment: EditAdjustment) = apply { + body.addEditAdjustment(editAdjustment) + } + + fun additionalBodyProperties(additionalBodyProperties: Map) = apply { + body.additionalProperties(additionalBodyProperties) + } + + fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { + body.putAdditionalProperty(key, value) + } + + fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = + apply { + body.putAllAdditionalProperties(additionalBodyProperties) + } + + fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + body.removeAllAdditionalProperties(keys) + } + + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) + } + + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } + + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } + + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } + + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) + } + + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } + + /** + * Returns an immutable instance of [SubscriptionPriceIntervalsParams]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .subscriptionId() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): SubscriptionPriceIntervalsParams = + SubscriptionPriceIntervalsParams( + checkRequired("subscriptionId", subscriptionId), + body.build(), + additionalHeaders.build(), + additionalQueryParams.build(), + ) + } + @JvmSynthetic internal fun _body(): Body = body fun _pathParam(index: Int): String = @@ -206,29 +500,38 @@ private constructor( override fun _queryParams(): QueryParams = additionalQueryParams - @NoAutoDetect class Body - @JsonCreator private constructor( - @JsonProperty("add") - @ExcludeMissing - private val add: JsonField> = JsonMissing.of(), - @JsonProperty("add_adjustments") - @ExcludeMissing - private val addAdjustments: JsonField> = JsonMissing.of(), - @JsonProperty("allow_invoice_credit_or_void") - @ExcludeMissing - private val allowInvoiceCreditOrVoid: JsonField = JsonMissing.of(), - @JsonProperty("edit") - @ExcludeMissing - private val edit: JsonField> = JsonMissing.of(), - @JsonProperty("edit_adjustments") - @ExcludeMissing - private val editAdjustments: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val add: JsonField>, + private val addAdjustments: JsonField>, + private val allowInvoiceCreditOrVoid: JsonField, + private val edit: JsonField>, + private val editAdjustments: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("add") @ExcludeMissing add: JsonField> = JsonMissing.of(), + @JsonProperty("add_adjustments") + @ExcludeMissing + addAdjustments: JsonField> = JsonMissing.of(), + @JsonProperty("allow_invoice_credit_or_void") + @ExcludeMissing + allowInvoiceCreditOrVoid: JsonField = JsonMissing.of(), + @JsonProperty("edit") @ExcludeMissing edit: JsonField> = JsonMissing.of(), + @JsonProperty("edit_adjustments") + @ExcludeMissing + editAdjustments: JsonField> = JsonMissing.of(), + ) : this( + add, + addAdjustments, + allowInvoiceCreditOrVoid, + edit, + editAdjustments, + mutableMapOf(), + ) + /** * A list of price intervals to add to the subscription. * @@ -320,24 +623,15 @@ private constructor( @ExcludeMissing fun _editAdjustments(): JsonField> = editAdjustments + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - add().ifPresent { it.forEach { it.validate() } } - addAdjustments().ifPresent { it.forEach { it.validate() } } - allowInvoiceCreditOrVoid() - edit().ifPresent { it.forEach { it.validate() } } - editAdjustments().ifPresent { it.forEach { it.validate() } } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -536,10 +830,25 @@ private constructor( allowInvoiceCreditOrVoid, (edit ?: JsonMissing.of()).map { it.toImmutable() }, (editAdjustments ?: JsonMissing.of()).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Body = apply { + if (validated) { + return@apply + } + + add().ifPresent { it.forEach { it.validate() } } + addAdjustments().ifPresent { it.forEach { it.validate() } } + allowInvoiceCreditOrVoid() + edit().ifPresent { it.forEach { it.validate() } } + editAdjustments().ifPresent { it.forEach { it.validate() } } + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -558,347 +867,72 @@ private constructor( "Body{add=$add, addAdjustments=$addAdjustments, allowInvoiceCreditOrVoid=$allowInvoiceCreditOrVoid, edit=$edit, editAdjustments=$editAdjustments, additionalProperties=$additionalProperties}" } - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of - * [SubscriptionPriceIntervalsParams]. - * - * The following fields are required: - * ```java - * .subscriptionId() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [SubscriptionPriceIntervalsParams]. */ - @NoAutoDetect - class Builder internal constructor() { - - private var subscriptionId: String? = null - private var body: Body.Builder = Body.builder() - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() - - @JvmSynthetic - internal fun from(subscriptionPriceIntervalsParams: SubscriptionPriceIntervalsParams) = - apply { - subscriptionId = subscriptionPriceIntervalsParams.subscriptionId - body = subscriptionPriceIntervalsParams.body.toBuilder() - additionalHeaders = subscriptionPriceIntervalsParams.additionalHeaders.toBuilder() - additionalQueryParams = - subscriptionPriceIntervalsParams.additionalQueryParams.toBuilder() - } - - fun subscriptionId(subscriptionId: String) = apply { this.subscriptionId = subscriptionId } - - /** A list of price intervals to add to the subscription. */ - fun add(add: List) = apply { body.add(add) } - - /** - * Sets [Builder.add] to an arbitrary JSON value. - * - * You should usually call [Builder.add] with a well-typed `List` value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun add(add: JsonField>) = apply { body.add(add) } - - /** - * Adds a single [Add] to [Builder.add]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addAdd(add: Add) = apply { body.addAdd(add) } - - /** A list of adjustments to add to the subscription. */ - fun addAdjustments(addAdjustments: List) = apply { - body.addAdjustments(addAdjustments) - } - - /** - * Sets [Builder.addAdjustments] to an arbitrary JSON value. - * - * You should usually call [Builder.addAdjustments] with a well-typed `List` - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun addAdjustments(addAdjustments: JsonField>) = apply { - body.addAdjustments(addAdjustments) - } - - /** - * Adds a single [AddAdjustment] to [addAdjustments]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addAddAdjustment(addAdjustment: AddAdjustment) = apply { - body.addAddAdjustment(addAdjustment) - } - - /** - * If false, this request will fail if it would void an issued invoice or create a credit - * note. Consider using this as a safety mechanism if you do not expect existing invoices to - * be changed. - */ - fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Boolean?) = apply { - body.allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid) - } - - /** - * Alias for [Builder.allowInvoiceCreditOrVoid]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Boolean) = - allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid as Boolean?) - - /** - * Alias for calling [Builder.allowInvoiceCreditOrVoid] with - * `allowInvoiceCreditOrVoid.orElse(null)`. - */ - fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Optional) = - allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid.getOrNull()) - - /** - * Sets [Builder.allowInvoiceCreditOrVoid] to an arbitrary JSON value. - * - * You should usually call [Builder.allowInvoiceCreditOrVoid] with a well-typed [Boolean] - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: JsonField) = apply { - body.allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid) - } - - /** A list of price intervals to edit on the subscription. */ - fun edit(edit: List) = apply { body.edit(edit) } - - /** - * Sets [Builder.edit] to an arbitrary JSON value. - * - * You should usually call [Builder.edit] with a well-typed `List` value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun edit(edit: JsonField>) = apply { body.edit(edit) } - - /** - * Adds a single [Edit] to [Builder.edit]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addEdit(edit: Edit) = apply { body.addEdit(edit) } - - /** A list of adjustments to edit on the subscription. */ - fun editAdjustments(editAdjustments: List) = apply { - body.editAdjustments(editAdjustments) - } - - /** - * Sets [Builder.editAdjustments] to an arbitrary JSON value. - * - * You should usually call [Builder.editAdjustments] with a well-typed - * `List` value instead. This method is primarily for setting the field to - * an undocumented or not yet supported value. - */ - fun editAdjustments(editAdjustments: JsonField>) = apply { - body.editAdjustments(editAdjustments) - } - - /** - * Adds a single [EditAdjustment] to [editAdjustments]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addEditAdjustment(editAdjustment: EditAdjustment) = apply { - body.addEditAdjustment(editAdjustment) - } - - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { - body.additionalProperties(additionalBodyProperties) - } - - fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - body.putAdditionalProperty(key, value) - } - - fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = - apply { - body.putAllAdditionalProperties(additionalBodyProperties) - } - - fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } - - fun removeAllAdditionalBodyProperties(keys: Set) = apply { - body.removeAllAdditionalProperties(keys) - } - - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } - - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } - - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } - - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } - - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } - - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } - - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } - - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } - - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } - - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } - - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } - - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } - - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } - - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } - - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } - - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) - } - - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } - - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } - - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) - } - - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } - - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } - - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) - } - - /** - * Returns an immutable instance of [SubscriptionPriceIntervalsParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .subscriptionId() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): SubscriptionPriceIntervalsParams = - SubscriptionPriceIntervalsParams( - checkRequired("subscriptionId", subscriptionId), - body.build(), - additionalHeaders.build(), - additionalQueryParams.build(), - ) - } - - @NoAutoDetect class Add - @JsonCreator private constructor( - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("allocation_price") - @ExcludeMissing - private val allocationPrice: JsonField = JsonMissing.of(), - @JsonProperty("discounts") - @ExcludeMissing - private val discounts: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("filter") - @ExcludeMissing - private val filter: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_transitions") - @ExcludeMissing - private val fixedFeeQuantityTransitions: JsonField> = - JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("price") - @ExcludeMissing - private val price: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("usage_customer_ids") - @ExcludeMissing - private val usageCustomerIds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val startDate: JsonField, + private val allocationPrice: JsonField, + private val discounts: JsonField>, + private val endDate: JsonField, + private val externalPriceId: JsonField, + private val filter: JsonField, + private val fixedFeeQuantityTransitions: JsonField>, + private val maximumAmount: JsonField, + private val minimumAmount: JsonField, + private val price: JsonField, + private val priceId: JsonField, + private val usageCustomerIds: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("allocation_price") + @ExcludeMissing + allocationPrice: JsonField = JsonMissing.of(), + @JsonProperty("discounts") + @ExcludeMissing + discounts: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("filter") @ExcludeMissing filter: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_transitions") + @ExcludeMissing + fixedFeeQuantityTransitions: JsonField> = + JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + @JsonProperty("usage_customer_ids") + @ExcludeMissing + usageCustomerIds: JsonField> = JsonMissing.of(), + ) : this( + startDate, + allocationPrice, + discounts, + endDate, + externalPriceId, + filter, + fixedFeeQuantityTransitions, + maximumAmount, + minimumAmount, + price, + priceId, + usageCustomerIds, + mutableMapOf(), + ) + /** * The start date of the price interval. This is the date that the price will start billing * on the subscription. @@ -1121,31 +1155,15 @@ private constructor( @ExcludeMissing fun _usageCustomerIds(): JsonField> = usageCustomerIds + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Add = apply { - if (validated) { - return@apply - } - - startDate().validate() - allocationPrice().ifPresent { it.validate() } - discounts().ifPresent { it.forEach { it.validate() } } - endDate().ifPresent { it.validate() } - externalPriceId() - filter() - fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } - maximumAmount() - minimumAmount() - price().ifPresent { it.validate() } - priceId() - usageCustomerIds() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1854,10 +1872,32 @@ private constructor( price, priceId, (usageCustomerIds ?: JsonMissing.of()).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Add = apply { + if (validated) { + return@apply + } + + startDate().validate() + allocationPrice().ifPresent { it.validate() } + discounts().ifPresent { it.forEach { it.validate() } } + endDate().ifPresent { it.validate() } + externalPriceId() + filter() + fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } + maximumAmount() + minimumAmount() + price().ifPresent { it.validate() } + priceId() + usageCustomerIds() + validated = true + } + /** * The start date of the price interval. This is the date that the price will start billing * on the subscription. @@ -2003,26 +2043,31 @@ private constructor( } /** The definition of a new allocation price to create and add to the subscription. */ - @NoAutoDetect class AllocationPrice - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("expires_at_end_of_cadence") - @ExcludeMissing - private val expiresAtEndOfCadence: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val cadence: JsonField, + private val currency: JsonField, + private val expiresAtEndOfCadence: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("expires_at_end_of_cadence") + @ExcludeMissing + expiresAtEndOfCadence: JsonField = JsonMissing.of(), + ) : this(amount, cadence, currency, expiresAtEndOfCadence, mutableMapOf()) + /** * An amount of the currency to allocate to the customer at the specified cadence. * @@ -2094,23 +2139,15 @@ private constructor( @ExcludeMissing fun _expiresAtEndOfCadence(): JsonField = expiresAtEndOfCadence + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AllocationPrice = apply { - if (validated) { - return@apply - } - - amount() - cadence() - currency() - expiresAtEndOfCadence() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2250,10 +2287,24 @@ private constructor( checkRequired("cadence", cadence), checkRequired("currency", currency), checkRequired("expiresAtEndOfCadence", expiresAtEndOfCadence), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AllocationPrice = apply { + if (validated) { + return@apply + } + + amount() + cadence() + currency() + expiresAtEndOfCadence() + validated = true + } + /** The cadence at which to allocate the amount to the customer. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2620,20 +2671,23 @@ private constructor( } } - @NoAutoDetect class AmountDiscountCreationParams - @JsonCreator private constructor( - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amountDiscount: JsonField, + private val discountType: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + ) : this(amountDiscount, discountType, mutableMapOf()) + /** * Only available if discount_type is `amount`. * @@ -2670,21 +2724,15 @@ private constructor( @ExcludeMissing fun _discountType(): JsonField = discountType + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AmountDiscountCreationParams = apply { - if (validated) { - return@apply - } - - amountDiscount() - discountType() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2787,10 +2835,22 @@ private constructor( AmountDiscountCreationParams( checkRequired("amountDiscount", amountDiscount), checkRequired("discountType", discountType), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AmountDiscountCreationParams = apply { + if (validated) { + return@apply + } + + amountDiscount() + discountType() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2911,20 +2971,23 @@ private constructor( "AmountDiscountCreationParams{amountDiscount=$amountDiscount, discountType=$discountType, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PercentageDiscountCreationParams - @JsonCreator private constructor( - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val discountType: JsonField, + private val percentageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + ) : this(discountType, percentageDiscount, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2963,21 +3026,15 @@ private constructor( @ExcludeMissing fun _percentageDiscount(): JsonField = percentageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PercentageDiscountCreationParams = apply { - if (validated) { - return@apply - } - - discountType() - percentageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3084,10 +3141,22 @@ private constructor( PercentageDiscountCreationParams( checkRequired("discountType", discountType), checkRequired("percentageDiscount", percentageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PercentageDiscountCreationParams = apply { + if (validated) { + return@apply + } + + discountType() + percentageDiscount() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3208,20 +3277,23 @@ private constructor( "PercentageDiscountCreationParams{discountType=$discountType, percentageDiscount=$percentageDiscount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class UsageDiscountCreationParams - @JsonCreator private constructor( - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val discountType: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this(discountType, usageDiscount, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3259,21 +3331,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UsageDiscountCreationParams = apply { - if (validated) { - return@apply - } - - discountType() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3379,10 +3445,22 @@ private constructor( UsageDiscountCreationParams( checkRequired("discountType", discountType), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UsageDiscountCreationParams = apply { + if (validated) { + return@apply + } + + discountType() + usageDiscount() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3648,20 +3726,23 @@ private constructor( } } - @NoAutoDetect class FixedFeeQuantityTransition - @JsonCreator private constructor( - @JsonProperty("effective_date") - @ExcludeMissing - private val effectiveDate: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val effectiveDate: JsonField, + private val quantity: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("effective_date") + @ExcludeMissing + effectiveDate: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + ) : this(effectiveDate, quantity, mutableMapOf()) + /** * The date that the fixed fee quantity transition should take effect. * @@ -3698,21 +3779,15 @@ private constructor( */ @JsonProperty("quantity") @ExcludeMissing fun _quantity(): JsonField = quantity + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantityTransition = apply { - if (validated) { - return@apply - } - - effectiveDate() - quantity() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3812,10 +3887,22 @@ private constructor( FixedFeeQuantityTransition( checkRequired("effectiveDate", effectiveDate), checkRequired("quantity", quantity), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantityTransition = apply { + if (validated) { + return@apply + } + + effectiveDate() + quantity() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5136,61 +5223,94 @@ private constructor( } } - @NoAutoDetect class NewFloatingUnitPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("unit_config") - @ExcludeMissing - private val unitConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val unitConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("unit_config") + @ExcludeMissing + unitConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + unitConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -5481,34 +5601,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingUnitPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - unitConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5950,10 +6051,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingUnitPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + unitConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -6186,17 +6312,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitConfig - @JsonCreator private constructor( - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of() + ) : this(unitAmount, mutableMapOf()) + /** * Rate per unit of usage * @@ -6216,20 +6344,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitConfig = apply { - if (validated) { - return@apply - } - - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6310,10 +6433,21 @@ private constructor( fun build(): UnitConfig = UnitConfig( checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UnitConfig = apply { + if (validated) { + return@apply + } + + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6336,20 +6470,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -6388,21 +6525,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6504,10 +6635,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -6640,20 +6783,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -6692,21 +6838,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6809,10 +6949,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -6946,28 +7098,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -7014,7 +7161,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -7052,61 +7209,94 @@ private constructor( "NewFloatingUnitPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, unitConfig=$unitConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("package_config") - @ExcludeMissing - private val packageConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val packageConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("package_config") + @ExcludeMissing + packageConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + packageConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -7397,34 +7587,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - packageConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7868,10 +8039,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + packageConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -8104,20 +8300,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class PackageConfig - @JsonCreator private constructor( - @JsonProperty("package_amount") - @ExcludeMissing - private val packageAmount: JsonField = JsonMissing.of(), - @JsonProperty("package_size") - @ExcludeMissing - private val packageSize: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val packageAmount: JsonField, + private val packageSize: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("package_amount") + @ExcludeMissing + packageAmount: JsonField = JsonMissing.of(), + @JsonProperty("package_size") + @ExcludeMissing + packageSize: JsonField = JsonMissing.of(), + ) : this(packageAmount, packageSize, mutableMapOf()) + /** * A currency amount to rate usage by * @@ -8157,21 +8356,15 @@ private constructor( @ExcludeMissing fun _packageSize(): JsonField = packageSize + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PackageConfig = apply { - if (validated) { - return@apply - } - - packageAmount() - packageSize() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8276,10 +8469,22 @@ private constructor( PackageConfig( checkRequired("packageAmount", packageAmount), checkRequired("packageSize", packageSize), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PackageConfig = apply { + if (validated) { + return@apply + } + + packageAmount() + packageSize() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8302,20 +8507,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -8354,21 +8562,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8470,10 +8672,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -8606,20 +8820,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -8658,21 +8875,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8775,10 +8986,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -8912,28 +9135,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -8980,7 +9198,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -9018,61 +9246,94 @@ private constructor( "NewFloatingPackagePrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, packageConfig=$packageConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingMatrixPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("matrix_config") - @ExcludeMissing - private val matrixConfig: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val matrixConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("matrix_config") + @ExcludeMissing + matrixConfig: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + matrixConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -9363,34 +9624,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingMatrixPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - matrixConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9833,10 +10075,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingMatrixPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + matrixConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -9968,23 +10235,27 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MatrixConfig - @JsonCreator private constructor( - @JsonProperty("default_unit_amount") - @ExcludeMissing - private val defaultUnitAmount: JsonField = JsonMissing.of(), - @JsonProperty("dimensions") - @ExcludeMissing - private val dimensions: JsonField> = JsonMissing.of(), - @JsonProperty("matrix_values") - @ExcludeMissing - private val matrixValues: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val defaultUnitAmount: JsonField, + private val dimensions: JsonField>, + private val matrixValues: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("default_unit_amount") + @ExcludeMissing + defaultUnitAmount: JsonField = JsonMissing.of(), + @JsonProperty("dimensions") + @ExcludeMissing + dimensions: JsonField> = JsonMissing.of(), + @JsonProperty("matrix_values") + @ExcludeMissing + matrixValues: JsonField> = JsonMissing.of(), + ) : this(defaultUnitAmount, dimensions, matrixValues, mutableMapOf()) + /** * Default per unit rate for any usage not bucketed into a specified * matrix_value @@ -10045,22 +10316,15 @@ private constructor( @ExcludeMissing fun _matrixValues(): JsonField> = matrixValues + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixConfig = apply { - if (validated) { - return@apply - } - - defaultUnitAmount() - dimensions() - matrixValues().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10213,25 +10477,40 @@ private constructor( checkRequired("matrixValues", matrixValues).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): MatrixConfig = apply { + if (validated) { + return@apply + } + + defaultUnitAmount() + dimensions() + matrixValues().forEach { it.validate() } + validated = true + } + class MatrixValue - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + ) : this(dimensionValues, unitAmount, mutableMapOf()) + /** * One or two matrix keys to filter usage to this Matrix value by. For * example, ["region", "tier"] could be used to filter cloud usage by a @@ -10273,21 +10552,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixValue = apply { - if (validated) { - return@apply - } - - dimensionValues() - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10412,10 +10685,22 @@ private constructor( it.toImmutable() }, checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MatrixValue = apply { + if (validated) { + return@apply + } + + dimensionValues() + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -10557,20 +10842,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -10609,21 +10897,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10725,10 +11007,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -10861,20 +11155,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -10913,21 +11210,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -11030,10 +11321,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -11167,28 +11470,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -11235,7 +11533,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -11273,62 +11581,95 @@ private constructor( "NewFloatingMatrixPrice{cadence=$cadence, currency=$currency, itemId=$itemId, matrixConfig=$matrixConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingMatrixWithAllocationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("matrix_with_allocation_config") - @ExcludeMissing - private val matrixWithAllocationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val matrixWithAllocationConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("matrix_with_allocation_config") + @ExcludeMissing + matrixWithAllocationConfig: JsonField = + JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + matrixWithAllocationConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -11621,34 +11962,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingMatrixWithAllocationPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - matrixWithAllocationConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12098,10 +12420,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingMatrixWithAllocationPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + matrixWithAllocationConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -12233,26 +12580,37 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MatrixWithAllocationConfig - @JsonCreator private constructor( - @JsonProperty("allocation") - @ExcludeMissing - private val allocation: JsonField = JsonMissing.of(), - @JsonProperty("default_unit_amount") - @ExcludeMissing - private val defaultUnitAmount: JsonField = JsonMissing.of(), - @JsonProperty("dimensions") - @ExcludeMissing - private val dimensions: JsonField> = JsonMissing.of(), - @JsonProperty("matrix_values") - @ExcludeMissing - private val matrixValues: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allocation: JsonField, + private val defaultUnitAmount: JsonField, + private val dimensions: JsonField>, + private val matrixValues: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allocation") + @ExcludeMissing + allocation: JsonField = JsonMissing.of(), + @JsonProperty("default_unit_amount") + @ExcludeMissing + defaultUnitAmount: JsonField = JsonMissing.of(), + @JsonProperty("dimensions") + @ExcludeMissing + dimensions: JsonField> = JsonMissing.of(), + @JsonProperty("matrix_values") + @ExcludeMissing + matrixValues: JsonField> = JsonMissing.of(), + ) : this( + allocation, + defaultUnitAmount, + dimensions, + matrixValues, + mutableMapOf(), + ) + /** * Allocation to be used to calculate the price * @@ -12332,23 +12690,15 @@ private constructor( @ExcludeMissing fun _matrixValues(): JsonField> = matrixValues + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixWithAllocationConfig = apply { - if (validated) { - return@apply - } - - allocation() - defaultUnitAmount() - dimensions() - matrixValues().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12527,25 +12877,41 @@ private constructor( checkRequired("matrixValues", matrixValues).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): MatrixWithAllocationConfig = apply { + if (validated) { + return@apply + } + + allocation() + defaultUnitAmount() + dimensions() + matrixValues().forEach { it.validate() } + validated = true + } + class MatrixValue - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + ) : this(dimensionValues, unitAmount, mutableMapOf()) + /** * One or two matrix keys to filter usage to this Matrix value by. For * example, ["region", "tier"] could be used to filter cloud usage by a @@ -12587,21 +12953,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixValue = apply { - if (validated) { - return@apply - } - - dimensionValues() - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12726,10 +13086,22 @@ private constructor( it.toImmutable() }, checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MatrixValue = apply { + if (validated) { + return@apply + } + + dimensionValues() + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -12871,20 +13243,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -12923,21 +13298,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13039,10 +13408,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -13175,20 +13556,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -13227,21 +13611,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13344,10 +13722,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -13481,28 +13871,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -13549,7 +13934,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -13587,61 +13982,94 @@ private constructor( "NewFloatingMatrixWithAllocationPrice{cadence=$cadence, currency=$currency, itemId=$itemId, matrixWithAllocationConfig=$matrixWithAllocationConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingTieredPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_config") - @ExcludeMissing - private val tieredConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_config") + @ExcludeMissing + tieredConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + tieredConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -13932,34 +14360,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingTieredPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - tieredConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -14402,10 +14811,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingTieredPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + tieredConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -14638,17 +15072,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for rating based on total usage quantities into the specified tier * @@ -14668,20 +15104,15 @@ private constructor( @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -14777,28 +15208,42 @@ private constructor( fun build(): TieredConfig = TieredConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("first_unit") - @ExcludeMissing - private val firstUnit: JsonField = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonProperty("last_unit") - @ExcludeMissing - private val lastUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val firstUnit: JsonField, + private val unitAmount: JsonField, + private val lastUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("first_unit") + @ExcludeMissing + firstUnit: JsonField = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + @JsonProperty("last_unit") + @ExcludeMissing + lastUnit: JsonField = JsonMissing.of(), + ) : this(firstUnit, unitAmount, lastUnit, mutableMapOf()) + /** * Inclusive tier starting value * @@ -14856,22 +15301,15 @@ private constructor( @ExcludeMissing fun _lastUnit(): JsonField = lastUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - firstUnit() - unitAmount() - lastUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -15007,10 +15445,23 @@ private constructor( checkRequired("firstUnit", firstUnit), checkRequired("unitAmount", unitAmount), lastUnit, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + firstUnit() + unitAmount() + lastUnit() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -15051,20 +15502,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -15103,21 +15557,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -15219,10 +15667,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -15355,20 +15815,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -15407,21 +15870,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -15524,10 +15981,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -15661,28 +16130,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -15729,7 +16193,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -15767,61 +16241,94 @@ private constructor( "NewFloatingTieredPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, tieredConfig=$tieredConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingTieredBpsPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_bps_config") - @ExcludeMissing - private val tieredBpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredBpsConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_bps_config") + @ExcludeMissing + tieredBpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + tieredBpsConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -16113,34 +16620,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingTieredBpsPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - tieredBpsConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -16585,10 +17073,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingTieredBpsPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + tieredBpsConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -16821,17 +17334,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredBpsConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for a Graduated BPS pricing model, where usage is bucketed into * specified tiers @@ -16852,20 +17367,15 @@ private constructor( @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredBpsConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -16964,31 +17474,46 @@ private constructor( fun build(): TieredBpsConfig = TieredBpsConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredBpsConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val bps: JsonField, + private val minimumAmount: JsonField, + private val maximumAmount: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") + @ExcludeMissing + bps: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, minimumAmount, maximumAmount, perUnitMaximum, mutableMapOf()) + /** * Per-event basis point rate * @@ -17063,23 +17588,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - bps() - minimumAmount() - maximumAmount() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -17229,10 +17746,24 @@ private constructor( checkRequired("minimumAmount", minimumAmount), maximumAmount, perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + bps() + minimumAmount() + maximumAmount() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -17273,20 +17804,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -17325,21 +17859,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -17441,10 +17969,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -17577,20 +18117,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -17629,21 +18172,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -17746,10 +18283,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -17883,28 +18432,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -17951,7 +18495,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -17989,61 +18543,94 @@ private constructor( "NewFloatingTieredBpsPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, tieredBpsConfig=$tieredBpsConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingBpsPrice - @JsonCreator private constructor( - @JsonProperty("bps_config") - @ExcludeMissing - private val bpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bpsConfig: JsonField, + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps_config") + @ExcludeMissing + bpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + bpsConfig, + cadence, + currency, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -18334,34 +18921,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingBpsPrice = apply { - if (validated) { - return@apply - } - - bpsConfig().validate() - cadence() - currency() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -18803,24 +19371,52 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewFloatingBpsPrice = apply { + if (validated) { + return@apply + } + + bpsConfig().validate() + cadence() + currency() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + class BpsConfig - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bps: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") + @ExcludeMissing + bps: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, perUnitMaximum, mutableMapOf()) + /** * Basis point take rate per event * @@ -18857,21 +19453,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BpsConfig = apply { - if (validated) { - return@apply - } - - bps() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -18975,10 +19565,22 @@ private constructor( BpsConfig( checkRequired("bps", bps), perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BpsConfig = apply { + if (validated) { + return@apply + } + + bps() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -19233,20 +19835,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -19285,21 +19890,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -19401,10 +20000,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -19537,20 +20148,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -19589,21 +20203,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -19706,10 +20314,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -19843,28 +20463,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -19911,7 +20526,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -19949,61 +20574,94 @@ private constructor( "NewFloatingBpsPrice{bpsConfig=$bpsConfig, cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingBulkBpsPrice - @JsonCreator private constructor( - @JsonProperty("bulk_bps_config") - @ExcludeMissing - private val bulkBpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bulkBpsConfig: JsonField, + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bulk_bps_config") + @ExcludeMissing + bulkBpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + bulkBpsConfig, + cadence, + currency, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -20294,34 +20952,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingBulkBpsPrice = apply { - if (validated) { - return@apply - } - - bulkBpsConfig().validate() - cadence() - currency() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -20765,21 +21404,48 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewFloatingBulkBpsPrice = apply { + if (validated) { + return@apply + } + + bulkBpsConfig().validate() + cadence() + currency() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + class BulkBpsConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for a bulk BPS pricing model where all usage is aggregated to a single * tier based on total volume @@ -20800,20 +21466,15 @@ private constructor( @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkBpsConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -20911,28 +21572,42 @@ private constructor( fun build(): BulkBpsConfig = BulkBpsConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): BulkBpsConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val bps: JsonField, + private val maximumAmount: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") + @ExcludeMissing + bps: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, maximumAmount, perUnitMaximum, mutableMapOf()) + /** * Basis points to rate on * @@ -20988,22 +21663,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - bps() - maximumAmount() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -21133,10 +21801,23 @@ private constructor( checkRequired("bps", bps), maximumAmount, perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + bps() + maximumAmount() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -21409,20 +22090,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -21461,21 +22145,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -21577,10 +22255,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -21713,20 +22403,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -21765,21 +22458,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -21882,10 +22569,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -22019,28 +22718,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -22087,7 +22781,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -22125,61 +22829,94 @@ private constructor( "NewFloatingBulkBpsPrice{bulkBpsConfig=$bulkBpsConfig, cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingBulkPrice - @JsonCreator private constructor( - @JsonProperty("bulk_config") - @ExcludeMissing - private val bulkConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bulkConfig: JsonField, + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bulk_config") + @ExcludeMissing + bulkConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + bulkConfig, + cadence, + currency, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -22470,34 +23207,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingBulkPrice = apply { - if (validated) { - return@apply - } - - bulkConfig().validate() - cadence() - currency() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -22939,21 +23657,48 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewFloatingBulkPrice = apply { + if (validated) { + return@apply + } + + bulkConfig().validate() + cadence() + currency() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + class BulkConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Bulk tiers for rating based on total usage volume * @@ -22973,20 +23718,15 @@ private constructor( @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -23080,25 +23820,38 @@ private constructor( fun build(): BulkConfig = BulkConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): BulkConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonProperty("maximum_units") - @ExcludeMissing - private val maximumUnits: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val unitAmount: JsonField, + private val maximumUnits: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + @JsonProperty("maximum_units") + @ExcludeMissing + maximumUnits: JsonField = JsonMissing.of(), + ) : this(unitAmount, maximumUnits, mutableMapOf()) + /** * Amount per unit * @@ -23137,21 +23890,15 @@ private constructor( @ExcludeMissing fun _maximumUnits(): JsonField = maximumUnits + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - unitAmount() - maximumUnits() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -23267,10 +24014,22 @@ private constructor( Tier( checkRequired("unitAmount", unitAmount), maximumUnits, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + unitAmount() + maximumUnits() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -23543,20 +24302,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -23595,21 +24357,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -23711,10 +24467,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -23847,20 +24615,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -23899,21 +24670,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -24016,10 +24781,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -24153,28 +24930,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -24221,7 +24993,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -24259,62 +25041,95 @@ private constructor( "NewFloatingBulkPrice{bulkConfig=$bulkConfig, cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingThresholdTotalAmountPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("threshold_total_amount_config") - @ExcludeMissing - private val thresholdTotalAmountConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val thresholdTotalAmountConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("threshold_total_amount_config") + @ExcludeMissing + thresholdTotalAmountConfig: JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + thresholdTotalAmountConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -24607,34 +25422,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingThresholdTotalAmountPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - thresholdTotalAmountConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -25084,10 +25880,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingThresholdTotalAmountPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + thresholdTotalAmountConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -25320,28 +26141,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ThresholdTotalAmountConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ThresholdTotalAmountConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -25394,7 +26210,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ThresholdTotalAmountConfig = - ThresholdTotalAmountConfig(additionalProperties.toImmutable()) + ThresholdTotalAmountConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): ThresholdTotalAmountConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -25419,20 +26245,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -25471,21 +26300,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -25587,10 +26410,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -25723,20 +26558,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -25775,21 +26613,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -25892,10 +26724,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -26029,28 +26873,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -26097,7 +26936,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -26135,61 +26984,94 @@ private constructor( "NewFloatingThresholdTotalAmountPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, thresholdTotalAmountConfig=$thresholdTotalAmountConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_package_config") - @ExcludeMissing - private val tieredPackageConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredPackageConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_package_config") + @ExcludeMissing + tieredPackageConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + tieredPackageConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -26481,34 +27363,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingTieredPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - tieredPackageConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -26955,10 +27818,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingTieredPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + tieredPackageConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -27191,28 +28079,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredPackageConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): TieredPackageConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -27264,7 +28147,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageConfig = - TieredPackageConfig(additionalProperties.toImmutable()) + TieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -27289,20 +28182,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -27341,21 +28237,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -27457,10 +28347,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -27593,20 +28495,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -27645,21 +28550,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -27762,10 +28661,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -27899,28 +28810,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -27967,7 +28873,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -28005,61 +28921,94 @@ private constructor( "NewFloatingTieredPackagePrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, tieredPackageConfig=$tieredPackageConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingGroupedTieredPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("grouped_tiered_config") - @ExcludeMissing - private val groupedTieredConfig: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val groupedTieredConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("grouped_tiered_config") + @ExcludeMissing + groupedTieredConfig: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + groupedTieredConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -28351,34 +29300,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingGroupedTieredPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - groupedTieredConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -28825,10 +29755,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingGroupedTieredPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + groupedTieredConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -28960,28 +29915,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedTieredConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedTieredConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -29033,7 +29983,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredConfig = - GroupedTieredConfig(additionalProperties.toImmutable()) + GroupedTieredConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedTieredConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -29159,20 +30119,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -29211,21 +30174,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -29327,10 +30284,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -29463,20 +30432,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -29515,21 +30487,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -29632,10 +30598,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -29769,28 +30747,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -29837,7 +30810,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -29875,62 +30858,95 @@ private constructor( "NewFloatingGroupedTieredPrice{cadence=$cadence, currency=$currency, groupedTieredConfig=$groupedTieredConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingMaxGroupTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("max_group_tiered_package_config") - @ExcludeMissing - private val maxGroupTieredPackageConfig: JsonField = - JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val maxGroupTieredPackageConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("max_group_tiered_package_config") + @ExcludeMissing + maxGroupTieredPackageConfig: JsonField = + JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + maxGroupTieredPackageConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -30223,34 +31239,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingMaxGroupTieredPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - maxGroupTieredPackageConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -30707,10 +31704,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingMaxGroupTieredPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + maxGroupTieredPackageConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -30842,28 +31864,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MaxGroupTieredPackageConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MaxGroupTieredPackageConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -30917,7 +31934,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MaxGroupTieredPackageConfig = - MaxGroupTieredPackageConfig(additionalProperties.toImmutable()) + MaxGroupTieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): MaxGroupTieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -31043,20 +32070,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -31095,21 +32125,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -31211,10 +32235,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -31347,20 +32383,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -31399,21 +32438,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -31516,10 +32549,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -31653,28 +32698,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -31721,7 +32761,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -31759,62 +32809,94 @@ private constructor( "NewFloatingMaxGroupTieredPackagePrice{cadence=$cadence, currency=$currency, itemId=$itemId, maxGroupTieredPackageConfig=$maxGroupTieredPackageConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingTieredWithMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_with_minimum_config") - @ExcludeMissing - private val tieredWithMinimumConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredWithMinimumConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_with_minimum_config") + @ExcludeMissing + tieredWithMinimumConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + tieredWithMinimumConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -32107,34 +33189,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingTieredWithMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - tieredWithMinimumConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -32581,10 +33644,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingTieredWithMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + tieredWithMinimumConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -32817,28 +33905,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredWithMinimumConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): TieredWithMinimumConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -32891,7 +33974,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithMinimumConfig = - TieredWithMinimumConfig(additionalProperties.toImmutable()) + TieredWithMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredWithMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -32916,20 +34009,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -32968,21 +34064,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -33084,10 +34174,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -33220,20 +34322,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -33272,21 +34377,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -33389,10 +34488,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -33526,28 +34637,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -33594,7 +34700,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -33632,62 +34748,95 @@ private constructor( "NewFloatingTieredWithMinimumPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, tieredWithMinimumConfig=$tieredWithMinimumConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingPackageWithAllocationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("package_with_allocation_config") - @ExcludeMissing - private val packageWithAllocationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val packageWithAllocationConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("package_with_allocation_config") + @ExcludeMissing + packageWithAllocationConfig: JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + packageWithAllocationConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -33980,34 +35129,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingPackageWithAllocationPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - packageWithAllocationConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -34464,10 +35594,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingPackageWithAllocationPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + packageWithAllocationConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -34700,28 +35855,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class PackageWithAllocationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): PackageWithAllocationConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -34775,7 +35925,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): PackageWithAllocationConfig = - PackageWithAllocationConfig(additionalProperties.toImmutable()) + PackageWithAllocationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): PackageWithAllocationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -34800,20 +35960,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -34852,21 +36015,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -34968,10 +36125,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -35104,20 +36273,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -35156,21 +36328,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -35273,10 +36439,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -35410,28 +36588,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -35478,7 +36651,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -35516,63 +36699,96 @@ private constructor( "NewFloatingPackageWithAllocationPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, packageWithAllocationConfig=$packageWithAllocationConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingTieredPackageWithMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_package_with_minimum_config") - @ExcludeMissing + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, private val tieredPackageWithMinimumConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_package_with_minimum_config") + @ExcludeMissing + tieredPackageWithMinimumConfig: JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + tieredPackageWithMinimumConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -35865,34 +37081,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingTieredPackageWithMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - tieredPackageWithMinimumConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -36352,10 +37549,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingTieredPackageWithMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + tieredPackageWithMinimumConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -36589,28 +37811,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredPackageWithMinimumConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredPackageWithMinimumConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -36664,7 +37881,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageWithMinimumConfig = - TieredPackageWithMinimumConfig(additionalProperties.toImmutable()) + TieredPackageWithMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredPackageWithMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -36689,20 +37916,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -36741,21 +37971,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -36857,10 +38081,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -36993,20 +38229,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -37045,21 +38284,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -37162,10 +38395,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -37299,28 +38544,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -37367,7 +38607,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -37405,62 +38655,94 @@ private constructor( "NewFloatingTieredPackageWithMinimumPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, tieredPackageWithMinimumConfig=$tieredPackageWithMinimumConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingUnitWithPercentPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("unit_with_percent_config") - @ExcludeMissing - private val unitWithPercentConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val unitWithPercentConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("unit_with_percent_config") + @ExcludeMissing + unitWithPercentConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + unitWithPercentConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -37753,34 +39035,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingUnitWithPercentPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - unitWithPercentConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -38227,10 +39490,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingUnitWithPercentPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + unitWithPercentConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -38463,28 +39751,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitWithPercentConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitWithPercentConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -38536,7 +39819,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithPercentConfig = - UnitWithPercentConfig(additionalProperties.toImmutable()) + UnitWithPercentConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): UnitWithPercentConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -38561,20 +39854,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -38613,21 +39909,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -38729,10 +40019,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -38865,20 +40167,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -38917,21 +40222,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -39034,10 +40333,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -39171,28 +40482,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -39239,7 +40545,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -39277,62 +40593,95 @@ private constructor( "NewFloatingUnitWithPercentPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, unitWithPercentConfig=$unitWithPercentConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingTieredWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_with_proration_config") - @ExcludeMissing - private val tieredWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredWithProrationConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_with_proration_config") + @ExcludeMissing + tieredWithProrationConfig: JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + tieredWithProrationConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -39625,34 +40974,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingTieredWithProrationPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - tieredWithProrationConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -40101,10 +41431,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingTieredWithProrationPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + tieredWithProrationConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -40337,28 +41692,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredWithProrationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): TieredWithProrationConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -40411,7 +41761,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithProrationConfig = - TieredWithProrationConfig(additionalProperties.toImmutable()) + TieredWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -40436,20 +41796,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -40488,21 +41851,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -40604,10 +41961,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -40740,20 +42109,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -40792,21 +42164,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -40909,10 +42275,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -41046,28 +42424,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -41114,7 +42487,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -41152,62 +42535,94 @@ private constructor( "NewFloatingTieredWithProrationPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, tieredWithProrationConfig=$tieredWithProrationConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingUnitWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("unit_with_proration_config") - @ExcludeMissing - private val unitWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val unitWithProrationConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("unit_with_proration_config") + @ExcludeMissing + unitWithProrationConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + unitWithProrationConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -41500,34 +42915,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingUnitWithProrationPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - unitWithProrationConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -41974,10 +43370,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingUnitWithProrationPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + unitWithProrationConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -42210,28 +43631,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitWithProrationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitWithProrationConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -42284,7 +43700,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithProrationConfig = - UnitWithProrationConfig(additionalProperties.toImmutable()) + UnitWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): UnitWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -42309,20 +43735,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -42361,21 +43790,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -42477,10 +43900,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -42613,20 +44048,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -42665,21 +44103,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -42782,10 +44214,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -42919,28 +44363,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -42987,7 +44426,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -43025,62 +44474,94 @@ private constructor( "NewFloatingUnitWithProrationPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, unitWithProrationConfig=$unitWithProrationConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingGroupedAllocationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("grouped_allocation_config") - @ExcludeMissing - private val groupedAllocationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val groupedAllocationConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("grouped_allocation_config") + @ExcludeMissing + groupedAllocationConfig: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + groupedAllocationConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -43373,34 +44854,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingGroupedAllocationPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - groupedAllocationConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -43847,10 +45309,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingGroupedAllocationPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + groupedAllocationConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -43982,28 +45469,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedAllocationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): GroupedAllocationConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -44056,7 +45538,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedAllocationConfig = - GroupedAllocationConfig(additionalProperties.toImmutable()) + GroupedAllocationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedAllocationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -44182,20 +45674,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -44234,21 +45729,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -44350,10 +45839,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -44486,20 +45987,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -44538,21 +46042,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -44655,10 +46153,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -44792,28 +46302,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -44860,7 +46365,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -44898,63 +46413,96 @@ private constructor( "NewFloatingGroupedAllocationPrice{cadence=$cadence, currency=$currency, groupedAllocationConfig=$groupedAllocationConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingGroupedWithProratedMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("grouped_with_prorated_minimum_config") - @ExcludeMissing + private val cadence: JsonField, + private val currency: JsonField, private val groupedWithProratedMinimumConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("grouped_with_prorated_minimum_config") + @ExcludeMissing + groupedWithProratedMinimumConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + groupedWithProratedMinimumConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -45249,34 +46797,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingGroupedWithProratedMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - groupedWithProratedMinimumConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -45743,10 +47272,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingGroupedWithProratedMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + groupedWithProratedMinimumConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -45878,28 +47432,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedWithProratedMinimumConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedWithProratedMinimumConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -45953,7 +47502,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithProratedMinimumConfig = - GroupedWithProratedMinimumConfig(additionalProperties.toImmutable()) + GroupedWithProratedMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedWithProratedMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -46080,20 +47639,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -46132,21 +47694,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -46248,10 +47804,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -46384,20 +47952,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -46436,21 +48007,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -46553,10 +48118,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -46690,28 +48267,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -46758,7 +48330,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -46796,63 +48378,96 @@ private constructor( "NewFloatingGroupedWithProratedMinimumPrice{cadence=$cadence, currency=$currency, groupedWithProratedMinimumConfig=$groupedWithProratedMinimumConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingGroupedWithMeteredMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("grouped_with_metered_minimum_config") - @ExcludeMissing + private val cadence: JsonField, + private val currency: JsonField, private val groupedWithMeteredMinimumConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("grouped_with_metered_minimum_config") + @ExcludeMissing + groupedWithMeteredMinimumConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + groupedWithMeteredMinimumConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -47147,34 +48762,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingGroupedWithMeteredMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - groupedWithMeteredMinimumConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -47639,10 +49235,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingGroupedWithMeteredMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + groupedWithMeteredMinimumConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -47774,28 +49395,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedWithMeteredMinimumConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedWithMeteredMinimumConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -47849,7 +49465,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithMeteredMinimumConfig = - GroupedWithMeteredMinimumConfig(additionalProperties.toImmutable()) + GroupedWithMeteredMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedWithMeteredMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -47976,20 +49602,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -48028,21 +49657,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -48144,10 +49767,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -48280,20 +49915,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -48332,21 +49970,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -48449,10 +50081,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -48586,28 +50230,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -48654,7 +50293,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -48692,62 +50341,95 @@ private constructor( "NewFloatingGroupedWithMeteredMinimumPrice{cadence=$cadence, currency=$currency, groupedWithMeteredMinimumConfig=$groupedWithMeteredMinimumConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingMatrixWithDisplayNamePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("matrix_with_display_name_config") - @ExcludeMissing - private val matrixWithDisplayNameConfig: JsonField = - JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val matrixWithDisplayNameConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("matrix_with_display_name_config") + @ExcludeMissing + matrixWithDisplayNameConfig: JsonField = + JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + matrixWithDisplayNameConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -49040,34 +50722,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingMatrixWithDisplayNamePrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - matrixWithDisplayNameConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -49524,10 +51187,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingMatrixWithDisplayNamePrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + matrixWithDisplayNameConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -49659,28 +51347,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MatrixWithDisplayNameConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): MatrixWithDisplayNameConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -49734,7 +51417,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MatrixWithDisplayNameConfig = - MatrixWithDisplayNameConfig(additionalProperties.toImmutable()) + MatrixWithDisplayNameConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): MatrixWithDisplayNameConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -49860,20 +51553,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -49912,21 +51608,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -50028,10 +51718,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -50164,20 +51866,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -50216,21 +51921,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -50333,10 +52032,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -50470,28 +52181,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -50538,7 +52244,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -50576,62 +52292,94 @@ private constructor( "NewFloatingMatrixWithDisplayNamePrice{cadence=$cadence, currency=$currency, itemId=$itemId, matrixWithDisplayNameConfig=$matrixWithDisplayNameConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingBulkWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("bulk_with_proration_config") - @ExcludeMissing - private val bulkWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bulkWithProrationConfig: JsonField, + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bulk_with_proration_config") + @ExcludeMissing + bulkWithProrationConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + bulkWithProrationConfig, + cadence, + currency, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -50924,34 +52672,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingBulkWithProrationPrice = apply { - if (validated) { - return@apply - } - - bulkWithProrationConfig().validate() - cadence() - currency() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -51398,32 +53127,52 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewFloatingBulkWithProrationPrice = apply { + if (validated) { + return@apply + } + + bulkWithProrationConfig().validate() + cadence() + currency() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + class BulkWithProrationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): BulkWithProrationConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -51476,7 +53225,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): BulkWithProrationConfig = - BulkWithProrationConfig(additionalProperties.toImmutable()) + BulkWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BulkWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -51733,20 +53492,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -51785,21 +53547,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -51901,10 +53657,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -52037,20 +53805,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -52089,21 +53860,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -52206,10 +53971,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -52343,28 +54120,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -52411,7 +54183,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -52449,62 +54231,95 @@ private constructor( "NewFloatingBulkWithProrationPrice{bulkWithProrationConfig=$bulkWithProrationConfig, cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingGroupedTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("grouped_tiered_package_config") - @ExcludeMissing - private val groupedTieredPackageConfig: JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val currency: JsonField, + private val groupedTieredPackageConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("grouped_tiered_package_config") + @ExcludeMissing + groupedTieredPackageConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + groupedTieredPackageConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -52797,34 +54612,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingGroupedTieredPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - groupedTieredPackageConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -53274,10 +55070,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingGroupedTieredPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + groupedTieredPackageConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -53409,28 +55230,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedTieredPackageConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedTieredPackageConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -53483,7 +55299,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredPackageConfig = - GroupedTieredPackageConfig(additionalProperties.toImmutable()) + GroupedTieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedTieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -53609,20 +55435,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -53661,21 +55490,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -53777,10 +55600,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -53913,20 +55748,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -53965,21 +55803,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -54082,10 +55914,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -54219,28 +56063,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -54287,7 +56126,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -54325,63 +56174,97 @@ private constructor( "NewFloatingGroupedTieredPackagePrice{cadence=$cadence, currency=$currency, groupedTieredPackageConfig=$groupedTieredPackageConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingScalableMatrixWithUnitPricingPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("scalable_matrix_with_unit_pricing_config") - @ExcludeMissing + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, private val scalableMatrixWithUnitPricingConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("scalable_matrix_with_unit_pricing_config") + @ExcludeMissing + scalableMatrixWithUnitPricingConfig: + JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + scalableMatrixWithUnitPricingConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -54677,34 +56560,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingScalableMatrixWithUnitPricingPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - scalableMatrixWithUnitPricingConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -55177,10 +57041,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingScalableMatrixWithUnitPricingPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + scalableMatrixWithUnitPricingConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -55417,28 +57306,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ScalableMatrixWithUnitPricingConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ScalableMatrixWithUnitPricingConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -55493,7 +57377,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithUnitPricingConfig = - ScalableMatrixWithUnitPricingConfig(additionalProperties.toImmutable()) + ScalableMatrixWithUnitPricingConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): ScalableMatrixWithUnitPricingConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -55518,20 +57412,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -55570,21 +57467,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -55686,10 +57577,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -55822,20 +57725,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -55874,21 +57780,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -55991,10 +57891,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -56128,28 +58040,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -56196,7 +58103,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -56234,63 +58151,97 @@ private constructor( "NewFloatingScalableMatrixWithUnitPricingPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, scalableMatrixWithUnitPricingConfig=$scalableMatrixWithUnitPricingConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingScalableMatrixWithTieredPricingPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("scalable_matrix_with_tiered_pricing_config") - @ExcludeMissing + private val cadence: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, private val scalableMatrixWithTieredPricingConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("scalable_matrix_with_tiered_pricing_config") + @ExcludeMissing + scalableMatrixWithTieredPricingConfig: + JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + currency, + itemId, + modelType, + name, + scalableMatrixWithTieredPricingConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -56586,34 +58537,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingScalableMatrixWithTieredPricingPrice = apply { - if (validated) { - return@apply - } - - cadence() - currency() - itemId() - modelType() - name() - scalableMatrixWithTieredPricingConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -57087,10 +59019,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingScalableMatrixWithTieredPricingPrice = apply { + if (validated) { + return@apply + } + + cadence() + currency() + itemId() + modelType() + name() + scalableMatrixWithTieredPricingConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -57327,28 +59284,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ScalableMatrixWithTieredPricingConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): ScalableMatrixWithTieredPricingConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -57405,10 +59357,20 @@ private constructor( */ fun build(): ScalableMatrixWithTieredPricingConfig = ScalableMatrixWithTieredPricingConfig( - additionalProperties.toImmutable() + additionalProperties.toMutableMap() ) } + private var validated: Boolean = false + + fun validate(): ScalableMatrixWithTieredPricingConfig = apply { + if (validated) { + return@apply + } + + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -57431,20 +59393,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -57483,21 +59448,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -57599,10 +59558,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -57735,20 +59706,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -57787,21 +59761,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -57904,10 +59872,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -58041,28 +60021,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -58109,7 +60084,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -58147,62 +60132,95 @@ private constructor( "NewFloatingScalableMatrixWithTieredPricingPrice{cadence=$cadence, currency=$currency, itemId=$itemId, modelType=$modelType, name=$name, scalableMatrixWithTieredPricingConfig=$scalableMatrixWithTieredPricingConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewFloatingCumulativeGroupedBulkPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("cumulative_grouped_bulk_config") - @ExcludeMissing - private val cumulativeGroupedBulkConfig: JsonField = - JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val cumulativeGroupedBulkConfig: JsonField, + private val currency: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("cumulative_grouped_bulk_config") + @ExcludeMissing + cumulativeGroupedBulkConfig: JsonField = + JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + ) : this( + cadence, + cumulativeGroupedBulkConfig, + currency, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -58495,34 +60513,15 @@ private constructor( @ExcludeMissing fun _metadata(): JsonField = metadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewFloatingCumulativeGroupedBulkPrice = apply { - if (validated) { - return@apply - } - - cadence() - cumulativeGroupedBulkConfig().validate() - currency() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -58979,10 +60978,35 @@ private constructor( invoiceGroupingKey, invoicingCycleConfiguration, metadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewFloatingCumulativeGroupedBulkPrice = apply { + if (validated) { + return@apply + } + + cadence() + cumulativeGroupedBulkConfig().validate() + currency() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -59114,28 +61138,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CumulativeGroupedBulkConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CumulativeGroupedBulkConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -59189,7 +61208,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): CumulativeGroupedBulkConfig = - CumulativeGroupedBulkConfig(additionalProperties.toImmutable()) + CumulativeGroupedBulkConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): CumulativeGroupedBulkConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -59315,20 +61344,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -59367,21 +61399,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -59483,10 +61509,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -59619,20 +61657,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -59671,21 +61712,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -59788,10 +61823,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -59925,28 +61972,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -59993,7 +62035,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -60050,23 +62102,25 @@ private constructor( "Add{startDate=$startDate, allocationPrice=$allocationPrice, discounts=$discounts, endDate=$endDate, externalPriceId=$externalPriceId, filter=$filter, fixedFeeQuantityTransitions=$fixedFeeQuantityTransitions, maximumAmount=$maximumAmount, minimumAmount=$minimumAmount, price=$price, priceId=$priceId, usageCustomerIds=$usageCustomerIds, additionalProperties=$additionalProperties}" } - @NoAutoDetect class AddAdjustment - @JsonCreator private constructor( - @JsonProperty("adjustment") - @ExcludeMissing - private val adjustment: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustment: JsonField, + private val startDate: JsonField, + private val endDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment") + @ExcludeMissing + adjustment: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("end_date") @ExcludeMissing endDate: JsonField = JsonMissing.of(), + ) : this(adjustment, startDate, endDate, mutableMapOf()) + /** * The definition of a new adjustment to create and add to the subscription. * @@ -60122,22 +62176,15 @@ private constructor( */ @JsonProperty("end_date") @ExcludeMissing fun _endDate(): JsonField = endDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AddAdjustment = apply { - if (validated) { - return@apply - } - - adjustment().validate() - startDate().validate() - endDate().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -60308,10 +62355,23 @@ private constructor( checkRequired("adjustment", adjustment), checkRequired("startDate", startDate), endDate, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AddAdjustment = apply { + if (validated) { + return@apply + } + + adjustment().validate() + startDate().validate() + endDate().ifPresent { it.validate() } + validated = true + } + /** The definition of a new adjustment to create and add to the subscription. */ @JsonDeserialize(using = Adjustment.Deserializer::class) @JsonSerialize(using = Adjustment.Serializer::class) @@ -60556,26 +62616,37 @@ private constructor( } } - @NoAutoDetect class NewPercentageDiscount - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val percentageDiscount: JsonField, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + appliesToPriceIds, + percentageDiscount, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -60651,23 +62722,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPercentageDiscount = apply { - if (validated) { - return@apply - } - - adjustmentType() - appliesToPriceIds() - percentageDiscount() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -60824,10 +62887,24 @@ private constructor( }, checkRequired("percentageDiscount", percentageDiscount), isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPercentageDiscount = apply { + if (validated) { + return@apply + } + + adjustmentType() + appliesToPriceIds() + percentageDiscount() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -60948,26 +63025,37 @@ private constructor( "NewPercentageDiscount{adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, percentageDiscount=$percentageDiscount, isInvoiceLevel=$isInvoiceLevel, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewUsageDiscount - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val usageDiscount: JsonField, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + appliesToPriceIds, + usageDiscount, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -61042,23 +63130,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewUsageDiscount = apply { - if (validated) { - return@apply - } - - adjustmentType() - appliesToPriceIds() - usageDiscount() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -61213,10 +63293,24 @@ private constructor( }, checkRequired("usageDiscount", usageDiscount), isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewUsageDiscount = apply { + if (validated) { + return@apply + } + + adjustmentType() + appliesToPriceIds() + usageDiscount() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -61337,26 +63431,37 @@ private constructor( "NewUsageDiscount{adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, usageDiscount=$usageDiscount, isInvoiceLevel=$isInvoiceLevel, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewAmountDiscount - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + amountDiscount, + appliesToPriceIds, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -61431,23 +63536,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewAmountDiscount = apply { - if (validated) { - return@apply - } - - adjustmentType() - amountDiscount() - appliesToPriceIds() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -61603,10 +63700,24 @@ private constructor( it.toImmutable() }, isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewAmountDiscount = apply { + if (validated) { + return@apply + } + + adjustmentType() + amountDiscount() + appliesToPriceIds() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -61727,29 +63838,42 @@ private constructor( "NewAmountDiscount{adjustmentType=$adjustmentType, amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewMinimum - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val itemId: JsonField, + private val minimumAmount: JsonField, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + appliesToPriceIds, + itemId, + minimumAmount, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -61841,24 +63965,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewMinimum = apply { - if (validated) { - return@apply - } - - adjustmentType() - appliesToPriceIds() - itemId() - minimumAmount() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -62029,10 +64144,25 @@ private constructor( checkRequired("itemId", itemId), checkRequired("minimumAmount", minimumAmount), isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewMinimum = apply { + if (validated) { + return@apply + } + + adjustmentType() + appliesToPriceIds() + itemId() + minimumAmount() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -62153,26 +64283,37 @@ private constructor( "NewMinimum{adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, itemId=$itemId, minimumAmount=$minimumAmount, isInvoiceLevel=$isInvoiceLevel, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewMaximum - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + appliesToPriceIds, + maximumAmount, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -62247,23 +64388,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewMaximum = apply { - if (validated) { - return@apply - } - - adjustmentType() - appliesToPriceIds() - maximumAmount() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -62417,10 +64550,24 @@ private constructor( }, checkRequired("maximumAmount", maximumAmount), isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewMaximum = apply { + if (validated) { + return@apply + } + + adjustmentType() + appliesToPriceIds() + maximumAmount() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -62852,36 +64999,51 @@ private constructor( "AddAdjustment{adjustment=$adjustment, startDate=$startDate, endDate=$endDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Edit - @JsonCreator private constructor( - @JsonProperty("price_interval_id") - @ExcludeMissing - private val priceIntervalId: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("filter") - @ExcludeMissing - private val filter: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_transitions") - @ExcludeMissing - private val fixedFeeQuantityTransitions: JsonField> = - JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_customer_ids") - @ExcludeMissing - private val usageCustomerIds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val priceIntervalId: JsonField, + private val billingCycleDay: JsonField, + private val endDate: JsonField, + private val filter: JsonField, + private val fixedFeeQuantityTransitions: JsonField>, + private val startDate: JsonField, + private val usageCustomerIds: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("price_interval_id") + @ExcludeMissing + priceIntervalId: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("filter") @ExcludeMissing filter: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_transitions") + @ExcludeMissing + fixedFeeQuantityTransitions: JsonField> = + JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_customer_ids") + @ExcludeMissing + usageCustomerIds: JsonField> = JsonMissing.of(), + ) : this( + priceIntervalId, + billingCycleDay, + endDate, + filter, + fixedFeeQuantityTransitions, + startDate, + usageCustomerIds, + mutableMapOf(), + ) + /** * The id of the price interval to edit. * @@ -63019,26 +65181,15 @@ private constructor( @ExcludeMissing fun _usageCustomerIds(): JsonField> = usageCustomerIds + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Edit = apply { - if (validated) { - return@apply - } - - priceIntervalId() - billingCycleDay() - endDate().ifPresent { it.validate() } - filter() - fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } - startDate().ifPresent { it.validate() } - usageCustomerIds() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -63325,10 +65476,27 @@ private constructor( (fixedFeeQuantityTransitions ?: JsonMissing.of()).map { it.toImmutable() }, startDate, (usageCustomerIds ?: JsonMissing.of()).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Edit = apply { + if (validated) { + return@apply + } + + priceIntervalId() + billingCycleDay() + endDate().ifPresent { it.validate() } + filter() + fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } + startDate().ifPresent { it.validate() } + usageCustomerIds() + validated = true + } + /** * The updated end date of this price interval. If not specified, the start date will not be * updated. @@ -63473,20 +65641,23 @@ private constructor( } } - @NoAutoDetect class FixedFeeQuantityTransition - @JsonCreator private constructor( - @JsonProperty("effective_date") - @ExcludeMissing - private val effectiveDate: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val effectiveDate: JsonField, + private val quantity: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("effective_date") + @ExcludeMissing + effectiveDate: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + ) : this(effectiveDate, quantity, mutableMapOf()) + /** * The date that the fixed fee quantity transition should take effect. * @@ -63523,21 +65694,15 @@ private constructor( */ @JsonProperty("quantity") @ExcludeMissing fun _quantity(): JsonField = quantity + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantityTransition = apply { - if (validated) { - return@apply - } - - effectiveDate() - quantity() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -63637,10 +65802,22 @@ private constructor( FixedFeeQuantityTransition( checkRequired("effectiveDate", effectiveDate), checkRequired("quantity", quantity), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantityTransition = apply { + if (validated) { + return@apply + } + + effectiveDate() + quantity() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -63821,23 +65998,27 @@ private constructor( "Edit{priceIntervalId=$priceIntervalId, billingCycleDay=$billingCycleDay, endDate=$endDate, filter=$filter, fixedFeeQuantityTransitions=$fixedFeeQuantityTransitions, startDate=$startDate, usageCustomerIds=$usageCustomerIds, additionalProperties=$additionalProperties}" } - @NoAutoDetect class EditAdjustment - @JsonCreator private constructor( - @JsonProperty("adjustment_interval_id") - @ExcludeMissing - private val adjustmentIntervalId: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentIntervalId: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_interval_id") + @ExcludeMissing + adjustmentIntervalId: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(adjustmentIntervalId, endDate, startDate, mutableMapOf()) + /** * The id of the adjustment interval to edit. * @@ -63892,22 +66073,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): EditAdjustment = apply { - if (validated) { - return@apply - } - - adjustmentIntervalId() - endDate().ifPresent { it.validate() } - startDate().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -64044,10 +66218,23 @@ private constructor( checkRequired("adjustmentIntervalId", adjustmentIntervalId), endDate, startDate, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): EditAdjustment = apply { + if (validated) { + return@apply + } + + adjustmentIntervalId() + endDate().ifPresent { it.validate() } + startDate().ifPresent { it.validate() } + validated = true + } + /** * The updated end date of this adjustment interval. If not specified, the start date will * not be updated. diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsResponse.kt index 9c684850..45c88e1b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsResponse.kt @@ -20,98 +20,142 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class SubscriptionPriceIntervalsResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("active_plan_phase_order") - @ExcludeMissing - private val activePlanPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_intervals") - @ExcludeMissing - private val adjustmentIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_anchor_configuration") - @ExcludeMissing - private val billingCycleAnchorConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("default_invoice_memo") - @ExcludeMissing - private val defaultInvoiceMemo: JsonField = JsonMissing.of(), - @JsonProperty("discount_intervals") - @ExcludeMissing - private val discountIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_schedule") - @ExcludeMissing - private val fixedFeeQuantitySchedule: JsonField> = - JsonMissing.of(), - @JsonProperty("invoicing_threshold") - @ExcludeMissing - private val invoicingThreshold: JsonField = JsonMissing.of(), - @JsonProperty("maximum_intervals") - @ExcludeMissing - private val maximumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum_intervals") - @ExcludeMissing - private val minimumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("plan") @ExcludeMissing private val plan: JsonField = JsonMissing.of(), - @JsonProperty("price_intervals") - @ExcludeMissing - private val priceIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("redeemed_coupon") - @ExcludeMissing - private val redeemedCoupon: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("trial_info") - @ExcludeMissing - private val trialInfo: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val activePlanPhaseOrder: JsonField, + private val adjustmentIntervals: JsonField>, + private val autoCollection: JsonField, + private val billingCycleAnchorConfiguration: JsonField, + private val billingCycleDay: JsonField, + private val createdAt: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val customer: JsonField, + private val defaultInvoiceMemo: JsonField, + private val discountIntervals: JsonField>, + private val endDate: JsonField, + private val fixedFeeQuantitySchedule: JsonField>, + private val invoicingThreshold: JsonField, + private val maximumIntervals: JsonField>, + private val metadata: JsonField, + private val minimumIntervals: JsonField>, + private val netTerms: JsonField, + private val plan: JsonField, + private val priceIntervals: JsonField>, + private val redeemedCoupon: JsonField, + private val startDate: JsonField, + private val status: JsonField, + private val trialInfo: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("active_plan_phase_order") + @ExcludeMissing + activePlanPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_intervals") + @ExcludeMissing + adjustmentIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_anchor_configuration") + @ExcludeMissing + billingCycleAnchorConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("customer") @ExcludeMissing customer: JsonField = JsonMissing.of(), + @JsonProperty("default_invoice_memo") + @ExcludeMissing + defaultInvoiceMemo: JsonField = JsonMissing.of(), + @JsonProperty("discount_intervals") + @ExcludeMissing + discountIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_schedule") + @ExcludeMissing + fixedFeeQuantitySchedule: JsonField> = JsonMissing.of(), + @JsonProperty("invoicing_threshold") + @ExcludeMissing + invoicingThreshold: JsonField = JsonMissing.of(), + @JsonProperty("maximum_intervals") + @ExcludeMissing + maximumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("metadata") @ExcludeMissing metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum_intervals") + @ExcludeMissing + minimumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("plan") @ExcludeMissing plan: JsonField = JsonMissing.of(), + @JsonProperty("price_intervals") + @ExcludeMissing + priceIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("redeemed_coupon") + @ExcludeMissing + redeemedCoupon: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + @JsonProperty("trial_info") + @ExcludeMissing + trialInfo: JsonField = JsonMissing.of(), + ) : this( + id, + activePlanPhaseOrder, + adjustmentIntervals, + autoCollection, + billingCycleAnchorConfiguration, + billingCycleDay, + createdAt, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + customer, + defaultInvoiceMemo, + discountIntervals, + endDate, + fixedFeeQuantitySchedule, + invoicingThreshold, + maximumIntervals, + metadata, + minimumIntervals, + netTerms, + plan, + priceIntervals, + redeemedCoupon, + startDate, + status, + trialInfo, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -566,44 +610,15 @@ private constructor( */ @JsonProperty("trial_info") @ExcludeMissing fun _trialInfo(): JsonField = trialInfo + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): SubscriptionPriceIntervalsResponse = apply { - if (validated) { - return@apply - } - - id() - activePlanPhaseOrder() - adjustmentIntervals().forEach { it.validate() } - autoCollection() - billingCycleAnchorConfiguration().validate() - billingCycleDay() - createdAt() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - customer().validate() - defaultInvoiceMemo() - discountIntervals().forEach { it.validate() } - endDate() - fixedFeeQuantitySchedule().forEach { it.validate() } - invoicingThreshold() - maximumIntervals().forEach { it.validate() } - metadata().validate() - minimumIntervals().forEach { it.validate() } - netTerms() - plan().validate() - priceIntervals().forEach { it.validate() } - redeemedCoupon().ifPresent { it.validate() } - startDate() - status() - trialInfo().validate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1340,31 +1355,72 @@ private constructor( checkRequired("startDate", startDate), checkRequired("status", status), checkRequired("trialInfo", trialInfo), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): SubscriptionPriceIntervalsResponse = apply { + if (validated) { + return@apply + } + + id() + activePlanPhaseOrder() + adjustmentIntervals().forEach { it.validate() } + autoCollection() + billingCycleAnchorConfiguration().validate() + billingCycleDay() + createdAt() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + customer().validate() + defaultInvoiceMemo() + discountIntervals().forEach { it.validate() } + endDate() + fixedFeeQuantitySchedule().forEach { it.validate() } + invoicingThreshold() + maximumIntervals().forEach { it.validate() } + metadata().validate() + minimumIntervals().forEach { it.validate() } + netTerms() + plan().validate() + priceIntervals().forEach { it.validate() } + redeemedCoupon().ifPresent { it.validate() } + startDate() + status() + trialInfo().validate() + validated = true + } + class AdjustmentInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment") - @ExcludeMissing - private val adjustment: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustment: JsonField, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment") + @ExcludeMissing + adjustment: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(id, adjustment, appliesToPriceIntervalIds, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -1447,24 +1503,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AdjustmentInterval = apply { - if (validated) { - return@apply - } - - id() - adjustment().validate() - appliesToPriceIntervalIds() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1668,10 +1715,25 @@ private constructor( }, checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AdjustmentInterval = apply { + if (validated) { + return@apply + } + + id() + adjustment().validate() + appliesToPriceIntervalIds() + endDate() + startDate() + validated = true + } + @JsonDeserialize(using = Adjustment.Deserializer::class) @JsonSerialize(using = Adjustment.Serializer::class) class Adjustment @@ -1960,35 +2022,50 @@ private constructor( } } - @NoAutoDetect class PlanPhaseUsageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + usageDiscount, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2115,26 +2192,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseUsageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2372,10 +2438,27 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseUsageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + usageDiscount() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2496,35 +2579,50 @@ private constructor( "PlanPhaseUsageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, usageDiscount=$usageDiscount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseAmountDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amountDiscount, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2651,26 +2749,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseAmountDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amountDiscount() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2908,10 +2995,27 @@ private constructor( checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseAmountDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amountDiscount() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3032,35 +3136,50 @@ private constructor( "PlanPhaseAmountDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhasePercentageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val percentageDiscount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + percentageDiscount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3188,26 +3307,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhasePercentageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - percentageDiscount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3447,10 +3555,27 @@ private constructor( checkRequired("percentageDiscount", percentageDiscount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhasePercentageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + percentageDiscount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3571,38 +3696,55 @@ private constructor( "PlanPhasePercentageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, percentageDiscount=$percentageDiscount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMinimumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val itemId: JsonField, + private val minimumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + itemId, + minimumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3746,27 +3888,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMinimumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - itemId() - minimumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4020,10 +4150,28 @@ private constructor( checkRequired("minimumAmount", minimumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMinimumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + itemId() + minimumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4144,35 +4292,50 @@ private constructor( "PlanPhaseMinimumAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, itemId=$itemId, minimumAmount=$minimumAmount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMaximumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val maximumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + maximumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4299,26 +4462,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMaximumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - maximumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4555,10 +4707,27 @@ private constructor( checkRequired("maximumAmount", maximumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMaximumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + maximumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4698,19 +4867,21 @@ private constructor( "AdjustmentInterval{id=$id, adjustment=$adjustment, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleAnchorConfiguration - @JsonCreator private constructor( - @JsonProperty("day") @ExcludeMissing private val day: JsonField = JsonMissing.of(), - @JsonProperty("month") - @ExcludeMissing - private val month: JsonField = JsonMissing.of(), - @JsonProperty("year") @ExcludeMissing private val year: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val day: JsonField, + private val month: JsonField, + private val year: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("day") @ExcludeMissing day: JsonField = JsonMissing.of(), + @JsonProperty("month") @ExcludeMissing month: JsonField = JsonMissing.of(), + @JsonProperty("year") @ExcludeMissing year: JsonField = JsonMissing.of(), + ) : this(day, month, year, mutableMapOf()) + /** * The day of the month on which the billing cycle is anchored. If the maximum number of * days in a month is greater than this value, the last day of the month is the billing @@ -4761,22 +4932,15 @@ private constructor( */ @JsonProperty("year") @ExcludeMissing fun _year(): JsonField = year + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleAnchorConfiguration = apply { - if (validated) { - return@apply - } - - day() - month() - year() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4915,10 +5079,23 @@ private constructor( checkRequired("day", day), month, year, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleAnchorConfiguration = apply { + if (validated) { + return@apply + } + + day() + month() + year() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5114,32 +5291,47 @@ private constructor( } } - @NoAutoDetect class AmountDiscountInterval - @JsonCreator private constructor( - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + amountDiscount, + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + mutableMapOf(), + ) + /** * Only available if discount_type is `amount`. * @@ -5253,25 +5445,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AmountDiscountInterval = apply { - if (validated) { - return@apply - } - - amountDiscount() - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5485,10 +5667,26 @@ private constructor( checkRequired("discountType", discountType), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AmountDiscountInterval = apply { + if (validated) { + return@apply + } + + amountDiscount() + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -5607,32 +5805,47 @@ private constructor( "AmountDiscountInterval{amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PercentageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val percentageDiscount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + percentageDiscount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -5746,25 +5959,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PercentageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - percentageDiscount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5982,10 +6185,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("percentageDiscount", percentageDiscount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PercentageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + percentageDiscount() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6104,32 +6323,47 @@ private constructor( "PercentageDiscountInterval{appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, percentageDiscount=$percentageDiscount, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class UsageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + usageDiscount, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -6244,25 +6478,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UsageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6478,10 +6702,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("startDate", startDate), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UsageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + usageDiscount() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6601,26 +6841,29 @@ private constructor( } } - @NoAutoDetect class FixedFeeQuantitySchedule - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(endDate, priceId, quantity, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -6678,23 +6921,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantitySchedule = apply { - if (validated) { - return@apply - } - - endDate() - priceId() - quantity() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6821,10 +7056,24 @@ private constructor( checkRequired("priceId", priceId), checkRequired("quantity", quantity), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantitySchedule = apply { + if (validated) { + return@apply + } + + endDate() + priceId() + quantity() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6843,29 +7092,42 @@ private constructor( "FixedFeeQuantitySchedule{endDate=$endDate, priceId=$priceId, quantity=$quantity, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MaximumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val maximumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + maximumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this maximum interval applies to. * @@ -6958,24 +7220,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MaximumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - maximumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7163,10 +7416,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("maximumAmount", maximumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MaximumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + maximumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7190,27 +7458,20 @@ private constructor( * dictionary. Individual keys can be removed by setting the value to `null`, and the entire * metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7254,7 +7515,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -7274,29 +7545,42 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class MinimumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val minimumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + minimumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this minimum interval applies to. * @@ -7389,24 +7673,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MinimumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - minimumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7594,10 +7869,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("minimumAmount", minimumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MinimumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + minimumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7620,43 +7910,62 @@ private constructor( * The Price Interval resource represents a period of time for which a price will bill on a * subscription. A subscription’s price intervals define its billing behavior. */ - @NoAutoDetect class PriceInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("filter") - @ExcludeMissing - private val filter: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_transitions") - @ExcludeMissing - private val fixedFeeQuantityTransitions: JsonField> = - JsonMissing.of(), - @JsonProperty("price") - @ExcludeMissing - private val price: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_customer_ids") - @ExcludeMissing - private val usageCustomerIds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billingCycleDay: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val endDate: JsonField, + private val filter: JsonField, + private val fixedFeeQuantityTransitions: JsonField>, + private val price: JsonField, + private val startDate: JsonField, + private val usageCustomerIds: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("filter") @ExcludeMissing filter: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_transitions") + @ExcludeMissing + fixedFeeQuantityTransitions: JsonField> = + JsonMissing.of(), + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_customer_ids") + @ExcludeMissing + usageCustomerIds: JsonField> = JsonMissing.of(), + ) : this( + id, + billingCycleDay, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + endDate, + filter, + fixedFeeQuantityTransitions, + price, + startDate, + usageCustomerIds, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -7854,29 +8163,15 @@ private constructor( @ExcludeMissing fun _usageCustomerIds(): JsonField> = usageCustomerIds + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PriceInterval = apply { - if (validated) { - return@apply - } - - id() - billingCycleDay() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - endDate() - filter() - fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } - price().validate() - startDate() - usageCustomerIds() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8361,27 +8656,51 @@ private constructor( checkRequired("price", price), checkRequired("startDate", startDate), checkRequired("usageCustomerIds", usageCustomerIds).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): PriceInterval = apply { + if (validated) { + return@apply + } + + id() + billingCycleDay() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + endDate() + filter() + fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } + price().validate() + startDate() + usageCustomerIds() + validated = true + } + class FixedFeeQuantityTransition - @JsonCreator private constructor( - @JsonProperty("effective_date") - @ExcludeMissing - private val effectiveDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val effectiveDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("effective_date") + @ExcludeMissing + effectiveDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") + @ExcludeMissing + priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + ) : this(effectiveDate, priceId, quantity, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -8428,22 +8747,15 @@ private constructor( */ @JsonProperty("quantity") @ExcludeMissing fun _quantity(): JsonField = quantity + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantityTransition = apply { - if (validated) { - return@apply - } - - effectiveDate() - priceId() - quantity() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8557,10 +8869,23 @@ private constructor( checkRequired("effectiveDate", effectiveDate), checkRequired("priceId", priceId), checkRequired("quantity", quantity), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantityTransition = apply { + if (validated) { + return@apply + } + + effectiveDate() + priceId() + quantity() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8597,23 +8922,27 @@ private constructor( "PriceInterval{id=$id, billingCycleDay=$billingCycleDay, currentBillingPeriodEndDate=$currentBillingPeriodEndDate, currentBillingPeriodStartDate=$currentBillingPeriodStartDate, endDate=$endDate, filter=$filter, fixedFeeQuantityTransitions=$fixedFeeQuantityTransitions, price=$price, startDate=$startDate, usageCustomerIds=$usageCustomerIds, additionalProperties=$additionalProperties}" } - @NoAutoDetect class RedeemedCoupon - @JsonCreator private constructor( - @JsonProperty("coupon_id") - @ExcludeMissing - private val couponId: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val couponId: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("coupon_id") + @ExcludeMissing + couponId: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(couponId, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -8658,22 +8987,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): RedeemedCoupon = apply { - if (validated) { - return@apply - } - - couponId() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8784,10 +9106,23 @@ private constructor( checkRequired("couponId", couponId), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): RedeemedCoupon = apply { + if (validated) { + return@apply + } + + couponId() + endDate() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8909,17 +9244,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TrialInfo - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of() + ) : this(endDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -8936,20 +9273,15 @@ private constructor( @ExcludeMissing fun _endDate(): JsonField = endDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TrialInfo = apply { - if (validated) { - return@apply - } - - endDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9024,7 +9356,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): TrialInfo = - TrialInfo(checkRequired("endDate", endDate), additionalProperties.toImmutable()) + TrialInfo(checkRequired("endDate", endDate), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TrialInfo = apply { + if (validated) { + return@apply + } + + endDate() + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeParams.kt index 71f54eb7..521ebe09 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeParams.kt @@ -20,17 +20,16 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -643,2466 +642,2520 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body + fun toBuilder() = Builder().from(this) - fun _pathParam(index: Int): String = - when (index) { - 0 -> subscriptionId - else -> "" - } + companion object { - override fun _headers(): Headers = additionalHeaders + /** + * Returns a mutable builder for constructing an instance of + * [SubscriptionSchedulePlanChangeParams]. + * + * The following fields are required: + * ```java + * .subscriptionId() + * .changeOption() + * ``` + */ + @JvmStatic fun builder() = Builder() + } - override fun _queryParams(): QueryParams = additionalQueryParams + /** A builder for [SubscriptionSchedulePlanChangeParams]. */ + class Builder internal constructor() { - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("change_option") - @ExcludeMissing - private val changeOption: JsonField = JsonMissing.of(), - @JsonProperty("add_adjustments") - @ExcludeMissing - private val addAdjustments: JsonField> = JsonMissing.of(), - @JsonProperty("add_prices") - @ExcludeMissing - private val addPrices: JsonField> = JsonMissing.of(), - @JsonProperty("align_billing_with_plan_change_date") - @ExcludeMissing - private val alignBillingWithPlanChangeDate: JsonField = JsonMissing.of(), - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_alignment") - @ExcludeMissing - private val billingCycleAlignment: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_anchor_configuration") - @ExcludeMissing - private val billingCycleAnchorConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("change_date") - @ExcludeMissing - private val changeDate: JsonField = JsonMissing.of(), - @JsonProperty("coupon_redemption_code") - @ExcludeMissing - private val couponRedemptionCode: JsonField = JsonMissing.of(), - @JsonProperty("credits_overage_rate") - @ExcludeMissing - private val creditsOverageRate: JsonField = JsonMissing.of(), - @JsonProperty("default_invoice_memo") - @ExcludeMissing - private val defaultInvoiceMemo: JsonField = JsonMissing.of(), - @JsonProperty("external_plan_id") - @ExcludeMissing - private val externalPlanId: JsonField = JsonMissing.of(), - @JsonProperty("filter") - @ExcludeMissing - private val filter: JsonField = JsonMissing.of(), - @JsonProperty("initial_phase_order") - @ExcludeMissing - private val initialPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_threshold") - @ExcludeMissing - private val invoicingThreshold: JsonField = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("per_credit_overage_amount") - @ExcludeMissing - private val perCreditOverageAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_id") - @ExcludeMissing - private val planId: JsonField = JsonMissing.of(), - @JsonProperty("plan_version_number") - @ExcludeMissing - private val planVersionNumber: JsonField = JsonMissing.of(), - @JsonProperty("price_overrides") - @ExcludeMissing - private val priceOverrides: JsonField> = JsonMissing.of(), - @JsonProperty("remove_adjustments") - @ExcludeMissing - private val removeAdjustments: JsonField> = JsonMissing.of(), - @JsonProperty("remove_prices") - @ExcludeMissing - private val removePrices: JsonField> = JsonMissing.of(), - @JsonProperty("replace_adjustments") - @ExcludeMissing - private val replaceAdjustments: JsonField> = JsonMissing.of(), - @JsonProperty("replace_prices") - @ExcludeMissing - private val replacePrices: JsonField> = JsonMissing.of(), - @JsonProperty("trial_duration_days") - @ExcludeMissing - private val trialDurationDays: JsonField = JsonMissing.of(), - @JsonProperty("usage_customer_ids") - @ExcludeMissing - private val usageCustomerIds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { + private var subscriptionId: String? = null + private var body: Body.Builder = Body.builder() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from( + subscriptionSchedulePlanChangeParams: SubscriptionSchedulePlanChangeParams + ) = apply { + subscriptionId = subscriptionSchedulePlanChangeParams.subscriptionId + body = subscriptionSchedulePlanChangeParams.body.toBuilder() + additionalHeaders = subscriptionSchedulePlanChangeParams.additionalHeaders.toBuilder() + additionalQueryParams = + subscriptionSchedulePlanChangeParams.additionalQueryParams.toBuilder() + } + + fun subscriptionId(subscriptionId: String) = apply { this.subscriptionId = subscriptionId } + + fun changeOption(changeOption: ChangeOption) = apply { body.changeOption(changeOption) } /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * Sets [Builder.changeOption] to an arbitrary JSON value. + * + * You should usually call [Builder.changeOption] with a well-typed [ChangeOption] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun changeOption(): ChangeOption = changeOption.getRequired("change_option") + fun changeOption(changeOption: JsonField) = apply { + body.changeOption(changeOption) + } /** * Additional adjustments to be added to the subscription. (Only available for accounts that * have migrated off of legacy subscription overrides) - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). */ - fun addAdjustments(): Optional> = - Optional.ofNullable(addAdjustments.getNullable("add_adjustments")) + fun addAdjustments(addAdjustments: List?) = apply { + body.addAdjustments(addAdjustments) + } - /** - * Additional prices to be added to the subscription. (Only available for accounts that have - * migrated off of legacy subscription overrides) - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun addPrices(): Optional> = - Optional.ofNullable(addPrices.getNullable("add_prices")) + /** Alias for calling [Builder.addAdjustments] with `addAdjustments.orElse(null)`. */ + fun addAdjustments(addAdjustments: Optional>) = + addAdjustments(addAdjustments.getOrNull()) /** - * [DEPRECATED] Use billing_cycle_alignment instead. Reset billing periods to be aligned - * with the plan change's effective date. + * Sets [Builder.addAdjustments] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.addAdjustments] with a well-typed `List` + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. */ - fun alignBillingWithPlanChangeDate(): Optional = - Optional.ofNullable( - alignBillingWithPlanChangeDate.getNullable("align_billing_with_plan_change_date") - ) + fun addAdjustments(addAdjustments: JsonField>) = apply { + body.addAdjustments(addAdjustments) + } /** - * Determines whether issued invoices for this subscription will automatically be charged - * with the saved payment method on the due date. If not specified, this defaults to the - * behavior configured for this customer. + * Adds a single [AddAdjustment] to [addAdjustments]. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * @throws IllegalStateException if the field was previously set to a non-list. */ - fun autoCollection(): Optional = - Optional.ofNullable(autoCollection.getNullable("auto_collection")) + fun addAddAdjustment(addAdjustment: AddAdjustment) = apply { + body.addAddAdjustment(addAdjustment) + } /** - * Reset billing periods to be aligned with the plan change's effective date or start of the - * month. Defaults to `unchanged` which keeps subscription's existing billing cycle - * alignment. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Additional prices to be added to the subscription. (Only available for accounts that have + * migrated off of legacy subscription overrides) */ - fun billingCycleAlignment(): Optional = - Optional.ofNullable(billingCycleAlignment.getNullable("billing_cycle_alignment")) + fun addPrices(addPrices: List?) = apply { body.addPrices(addPrices) } - /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun billingCycleAnchorConfiguration(): Optional = - Optional.ofNullable( - billingCycleAnchorConfiguration.getNullable("billing_cycle_anchor_configuration") - ) + /** Alias for calling [Builder.addPrices] with `addPrices.orElse(null)`. */ + fun addPrices(addPrices: Optional>) = addPrices(addPrices.getOrNull()) /** - * The date that the plan change should take effect. This parameter can only be passed if - * the `change_option` is `requested_date`. If a date with no time is passed, the plan - * change will happen at midnight in the customer's timezone. + * Sets [Builder.addPrices] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.addPrices] with a well-typed `List` value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun changeDate(): Optional = - Optional.ofNullable(changeDate.getNullable("change_date")) + fun addPrices(addPrices: JsonField>) = apply { body.addPrices(addPrices) } /** - * Redemption code to be used for this subscription. If the coupon cannot be found by its - * redemption code, or cannot be redeemed, an error response will be returned and the - * subscription creation or plan change will not be scheduled. + * Adds a single [AddPrice] to [addPrices]. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * @throws IllegalStateException if the field was previously set to a non-list. */ - fun couponRedemptionCode(): Optional = - Optional.ofNullable(couponRedemptionCode.getNullable("coupon_redemption_code")) + fun addAddPrice(addPrice: AddPrice) = apply { body.addAddPrice(addPrice) } /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * [DEPRECATED] Use billing_cycle_alignment instead. Reset billing periods to be aligned + * with the plan change's effective date. */ - @Deprecated("deprecated") - fun creditsOverageRate(): Optional = - Optional.ofNullable(creditsOverageRate.getNullable("credits_overage_rate")) + fun alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate: Boolean?) = apply { + body.alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate) + } /** - * Determines the default memo on this subscription's invoices. Note that if this is not - * provided, it is determined by the plan configuration. + * Alias for [Builder.alignBillingWithPlanChangeDate]. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * This unboxed primitive overload exists for backwards compatibility. */ - fun defaultInvoiceMemo(): Optional = - Optional.ofNullable(defaultInvoiceMemo.getNullable("default_invoice_memo")) + fun alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate: Boolean) = + alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate as Boolean?) /** - * The external_plan_id of the plan that the given subscription should be switched to. Note - * that either this property or `plan_id` must be specified. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Alias for calling [Builder.alignBillingWithPlanChangeDate] with + * `alignBillingWithPlanChangeDate.orElse(null)`. */ - fun externalPlanId(): Optional = - Optional.ofNullable(externalPlanId.getNullable("external_plan_id")) + fun alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate: Optional) = + alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate.getOrNull()) /** - * An additional filter to apply to usage queries. This filter must be expressed as a - * boolean [computed property](/extensibility/advanced-metrics#computed-properties). If - * null, usage queries will not include any additional filter. + * Sets [Builder.alignBillingWithPlanChangeDate] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.alignBillingWithPlanChangeDate] with a well-typed + * [Boolean] value instead. This method is primarily for setting the field to an + * undocumented or not yet supported value. */ - fun filter(): Optional = Optional.ofNullable(filter.getNullable("filter")) + fun alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate: JsonField) = + apply { + body.alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate) + } /** - * The phase of the plan to start with - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Determines whether issued invoices for this subscription will automatically be charged + * with the saved payment method on the due date. If not specified, this defaults to the + * behavior configured for this customer. */ - fun initialPhaseOrder(): Optional = - Optional.ofNullable(initialPhaseOrder.getNullable("initial_phase_order")) + fun autoCollection(autoCollection: Boolean?) = apply { body.autoCollection(autoCollection) } /** - * When this subscription's accrued usage reaches this threshold, an invoice will be issued - * for the subscription. If not specified, invoices will only be issued at the end of the - * billing period. + * Alias for [Builder.autoCollection]. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * This unboxed primitive overload exists for backwards compatibility. */ - fun invoicingThreshold(): Optional = - Optional.ofNullable(invoicingThreshold.getNullable("invoicing_threshold")) + fun autoCollection(autoCollection: Boolean) = autoCollection(autoCollection as Boolean?) + + /** Alias for calling [Builder.autoCollection] with `autoCollection.orElse(null)`. */ + fun autoCollection(autoCollection: Optional) = + autoCollection(autoCollection.getOrNull()) /** - * The net terms determines the difference between the invoice date and the issue date for - * the invoice. If you intend the invoice to be due on issue, set this to 0. If not - * provided, this defaults to the value specified in the plan. + * Sets [Builder.autoCollection] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.autoCollection] with a well-typed [Boolean] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun netTerms(): Optional = Optional.ofNullable(netTerms.getNullable("net_terms")) + fun autoCollection(autoCollection: JsonField) = apply { + body.autoCollection(autoCollection) + } /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Reset billing periods to be aligned with the plan change's effective date or start of the + * month. Defaults to `unchanged` which keeps subscription's existing billing cycle + * alignment. */ - @Deprecated("deprecated") - fun perCreditOverageAmount(): Optional = - Optional.ofNullable(perCreditOverageAmount.getNullable("per_credit_overage_amount")) + fun billingCycleAlignment(billingCycleAlignment: BillingCycleAlignment?) = apply { + body.billingCycleAlignment(billingCycleAlignment) + } /** - * The plan that the given subscription should be switched to. Note that either this - * property or `external_plan_id` must be specified. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Alias for calling [Builder.billingCycleAlignment] with + * `billingCycleAlignment.orElse(null)`. */ - fun planId(): Optional = Optional.ofNullable(planId.getNullable("plan_id")) + fun billingCycleAlignment(billingCycleAlignment: Optional) = + billingCycleAlignment(billingCycleAlignment.getOrNull()) /** - * Specifies which version of the plan to change to. If null, the default version will be - * used. + * Sets [Builder.billingCycleAlignment] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.billingCycleAlignment] with a well-typed + * [BillingCycleAlignment] value instead. This method is primarily for setting the field to + * an undocumented or not yet supported value. */ - fun planVersionNumber(): Optional = - Optional.ofNullable(planVersionNumber.getNullable("plan_version_number")) + fun billingCycleAlignment(billingCycleAlignment: JsonField) = apply { + body.billingCycleAlignment(billingCycleAlignment) + } + + fun billingCycleAnchorConfiguration( + billingCycleAnchorConfiguration: BillingCycleAnchorConfiguration? + ) = apply { body.billingCycleAnchorConfiguration(billingCycleAnchorConfiguration) } /** - * Optionally provide a list of overrides for prices on the plan - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Alias for calling [Builder.billingCycleAnchorConfiguration] with + * `billingCycleAnchorConfiguration.orElse(null)`. */ - @Deprecated("deprecated") - fun priceOverrides(): Optional> = - Optional.ofNullable(priceOverrides.getNullable("price_overrides")) + fun billingCycleAnchorConfiguration( + billingCycleAnchorConfiguration: Optional + ) = billingCycleAnchorConfiguration(billingCycleAnchorConfiguration.getOrNull()) /** - * Plan adjustments to be removed from the subscription. (Only available for accounts that - * have migrated off of legacy subscription overrides) + * Sets [Builder.billingCycleAnchorConfiguration] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.billingCycleAnchorConfiguration] with a well-typed + * [BillingCycleAnchorConfiguration] value instead. This method is primarily for setting the + * field to an undocumented or not yet supported value. */ - fun removeAdjustments(): Optional> = - Optional.ofNullable(removeAdjustments.getNullable("remove_adjustments")) + fun billingCycleAnchorConfiguration( + billingCycleAnchorConfiguration: JsonField + ) = apply { body.billingCycleAnchorConfiguration(billingCycleAnchorConfiguration) } /** - * Plan prices to be removed from the subscription. (Only available for accounts that have - * migrated off of legacy subscription overrides) - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * The date that the plan change should take effect. This parameter can only be passed if + * the `change_option` is `requested_date`. If a date with no time is passed, the plan + * change will happen at midnight in the customer's timezone. */ - fun removePrices(): Optional> = - Optional.ofNullable(removePrices.getNullable("remove_prices")) + fun changeDate(changeDate: OffsetDateTime?) = apply { body.changeDate(changeDate) } + + /** Alias for calling [Builder.changeDate] with `changeDate.orElse(null)`. */ + fun changeDate(changeDate: Optional) = changeDate(changeDate.getOrNull()) /** - * Plan adjustments to be replaced with additional adjustments on the subscription. (Only - * available for accounts that have migrated off of legacy subscription overrides) + * Sets [Builder.changeDate] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.changeDate] with a well-typed [OffsetDateTime] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun replaceAdjustments(): Optional> = - Optional.ofNullable(replaceAdjustments.getNullable("replace_adjustments")) + fun changeDate(changeDate: JsonField) = apply { + body.changeDate(changeDate) + } /** - * Plan prices to be replaced with additional prices on the subscription. (Only available - * for accounts that have migrated off of legacy subscription overrides) - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Redemption code to be used for this subscription. If the coupon cannot be found by its + * redemption code, or cannot be redeemed, an error response will be returned and the + * subscription creation or plan change will not be scheduled. */ - fun replacePrices(): Optional> = - Optional.ofNullable(replacePrices.getNullable("replace_prices")) + fun couponRedemptionCode(couponRedemptionCode: String?) = apply { + body.couponRedemptionCode(couponRedemptionCode) + } /** - * The duration of the trial period in days. If not provided, this defaults to the value - * specified in the plan. If `0` is provided, the trial on the plan will be skipped. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Alias for calling [Builder.couponRedemptionCode] with + * `couponRedemptionCode.orElse(null)`. */ - fun trialDurationDays(): Optional = - Optional.ofNullable(trialDurationDays.getNullable("trial_duration_days")) + fun couponRedemptionCode(couponRedemptionCode: Optional) = + couponRedemptionCode(couponRedemptionCode.getOrNull()) /** - * A list of customer IDs whose usage events will be aggregated and billed under this - * subscription. By default, a subscription only considers usage events associated with its - * attached customer's customer_id. When usage_customer_ids is provided, the subscription - * includes usage events from the specified customers only. Provided usage_customer_ids must - * be either the customer for this subscription itself, or any of that customer's children. + * Sets [Builder.couponRedemptionCode] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.couponRedemptionCode] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun usageCustomerIds(): Optional> = - Optional.ofNullable(usageCustomerIds.getNullable("usage_customer_ids")) + fun couponRedemptionCode(couponRedemptionCode: JsonField) = apply { + body.couponRedemptionCode(couponRedemptionCode) + } + + @Deprecated("deprecated") + fun creditsOverageRate(creditsOverageRate: Double?) = apply { + body.creditsOverageRate(creditsOverageRate) + } /** - * Returns the raw JSON value of [changeOption]. + * Alias for [Builder.creditsOverageRate]. * - * Unlike [changeOption], this method doesn't throw if the JSON field has an unexpected - * type. + * This unboxed primitive overload exists for backwards compatibility. */ - @JsonProperty("change_option") - @ExcludeMissing - fun _changeOption(): JsonField = changeOption + @Deprecated("deprecated") + fun creditsOverageRate(creditsOverageRate: Double) = + creditsOverageRate(creditsOverageRate as Double?) /** - * Returns the raw JSON value of [addAdjustments]. - * - * Unlike [addAdjustments], this method doesn't throw if the JSON field has an unexpected - * type. + * Alias for calling [Builder.creditsOverageRate] with `creditsOverageRate.orElse(null)`. */ - @JsonProperty("add_adjustments") - @ExcludeMissing - fun _addAdjustments(): JsonField> = addAdjustments + @Deprecated("deprecated") + fun creditsOverageRate(creditsOverageRate: Optional) = + creditsOverageRate(creditsOverageRate.getOrNull()) /** - * Returns the raw JSON value of [addPrices]. + * Sets [Builder.creditsOverageRate] to an arbitrary JSON value. * - * Unlike [addPrices], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.creditsOverageRate] with a well-typed [Double] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("add_prices") - @ExcludeMissing - fun _addPrices(): JsonField> = addPrices + @Deprecated("deprecated") + fun creditsOverageRate(creditsOverageRate: JsonField) = apply { + body.creditsOverageRate(creditsOverageRate) + } /** - * Returns the raw JSON value of [alignBillingWithPlanChangeDate]. - * - * Unlike [alignBillingWithPlanChangeDate], this method doesn't throw if the JSON field has - * an unexpected type. + * Determines the default memo on this subscription's invoices. Note that if this is not + * provided, it is determined by the plan configuration. */ - @JsonProperty("align_billing_with_plan_change_date") - @ExcludeMissing - fun _alignBillingWithPlanChangeDate(): JsonField = alignBillingWithPlanChangeDate + fun defaultInvoiceMemo(defaultInvoiceMemo: String?) = apply { + body.defaultInvoiceMemo(defaultInvoiceMemo) + } /** - * Returns the raw JSON value of [autoCollection]. - * - * Unlike [autoCollection], this method doesn't throw if the JSON field has an unexpected - * type. + * Alias for calling [Builder.defaultInvoiceMemo] with `defaultInvoiceMemo.orElse(null)`. */ - @JsonProperty("auto_collection") - @ExcludeMissing - fun _autoCollection(): JsonField = autoCollection + fun defaultInvoiceMemo(defaultInvoiceMemo: Optional) = + defaultInvoiceMemo(defaultInvoiceMemo.getOrNull()) /** - * Returns the raw JSON value of [billingCycleAlignment]. + * Sets [Builder.defaultInvoiceMemo] to an arbitrary JSON value. * - * Unlike [billingCycleAlignment], this method doesn't throw if the JSON field has an - * unexpected type. + * You should usually call [Builder.defaultInvoiceMemo] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("billing_cycle_alignment") - @ExcludeMissing - fun _billingCycleAlignment(): JsonField = billingCycleAlignment + fun defaultInvoiceMemo(defaultInvoiceMemo: JsonField) = apply { + body.defaultInvoiceMemo(defaultInvoiceMemo) + } /** - * Returns the raw JSON value of [billingCycleAnchorConfiguration]. - * - * Unlike [billingCycleAnchorConfiguration], this method doesn't throw if the JSON field has - * an unexpected type. + * The external_plan_id of the plan that the given subscription should be switched to. Note + * that either this property or `plan_id` must be specified. */ - @JsonProperty("billing_cycle_anchor_configuration") - @ExcludeMissing - fun _billingCycleAnchorConfiguration(): JsonField = - billingCycleAnchorConfiguration + fun externalPlanId(externalPlanId: String?) = apply { body.externalPlanId(externalPlanId) } + + /** Alias for calling [Builder.externalPlanId] with `externalPlanId.orElse(null)`. */ + fun externalPlanId(externalPlanId: Optional) = + externalPlanId(externalPlanId.getOrNull()) /** - * Returns the raw JSON value of [changeDate]. + * Sets [Builder.externalPlanId] to an arbitrary JSON value. * - * Unlike [changeDate], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.externalPlanId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("change_date") - @ExcludeMissing - fun _changeDate(): JsonField = changeDate + fun externalPlanId(externalPlanId: JsonField) = apply { + body.externalPlanId(externalPlanId) + } /** - * Returns the raw JSON value of [couponRedemptionCode]. - * - * Unlike [couponRedemptionCode], this method doesn't throw if the JSON field has an - * unexpected type. + * An additional filter to apply to usage queries. This filter must be expressed as a + * boolean [computed property](/extensibility/advanced-metrics#computed-properties). If + * null, usage queries will not include any additional filter. */ - @JsonProperty("coupon_redemption_code") - @ExcludeMissing - fun _couponRedemptionCode(): JsonField = couponRedemptionCode + fun filter(filter: String?) = apply { body.filter(filter) } + + /** Alias for calling [Builder.filter] with `filter.orElse(null)`. */ + fun filter(filter: Optional) = filter(filter.getOrNull()) /** - * Returns the raw JSON value of [creditsOverageRate]. + * Sets [Builder.filter] to an arbitrary JSON value. * - * Unlike [creditsOverageRate], this method doesn't throw if the JSON field has an - * unexpected type. + * You should usually call [Builder.filter] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - @Deprecated("deprecated") - @JsonProperty("credits_overage_rate") - @ExcludeMissing - fun _creditsOverageRate(): JsonField = creditsOverageRate + fun filter(filter: JsonField) = apply { body.filter(filter) } + + /** The phase of the plan to start with */ + fun initialPhaseOrder(initialPhaseOrder: Long?) = apply { + body.initialPhaseOrder(initialPhaseOrder) + } /** - * Returns the raw JSON value of [defaultInvoiceMemo]. + * Alias for [Builder.initialPhaseOrder]. * - * Unlike [defaultInvoiceMemo], this method doesn't throw if the JSON field has an - * unexpected type. + * This unboxed primitive overload exists for backwards compatibility. */ - @JsonProperty("default_invoice_memo") - @ExcludeMissing - fun _defaultInvoiceMemo(): JsonField = defaultInvoiceMemo + fun initialPhaseOrder(initialPhaseOrder: Long) = + initialPhaseOrder(initialPhaseOrder as Long?) + + /** Alias for calling [Builder.initialPhaseOrder] with `initialPhaseOrder.orElse(null)`. */ + fun initialPhaseOrder(initialPhaseOrder: Optional) = + initialPhaseOrder(initialPhaseOrder.getOrNull()) /** - * Returns the raw JSON value of [externalPlanId]. + * Sets [Builder.initialPhaseOrder] to an arbitrary JSON value. * - * Unlike [externalPlanId], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.initialPhaseOrder] with a well-typed [Long] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("external_plan_id") - @ExcludeMissing - fun _externalPlanId(): JsonField = externalPlanId + fun initialPhaseOrder(initialPhaseOrder: JsonField) = apply { + body.initialPhaseOrder(initialPhaseOrder) + } /** - * Returns the raw JSON value of [filter]. - * - * Unlike [filter], this method doesn't throw if the JSON field has an unexpected type. + * When this subscription's accrued usage reaches this threshold, an invoice will be issued + * for the subscription. If not specified, invoices will only be issued at the end of the + * billing period. */ - @JsonProperty("filter") @ExcludeMissing fun _filter(): JsonField = filter + fun invoicingThreshold(invoicingThreshold: String?) = apply { + body.invoicingThreshold(invoicingThreshold) + } /** - * Returns the raw JSON value of [initialPhaseOrder]. - * - * Unlike [initialPhaseOrder], this method doesn't throw if the JSON field has an unexpected - * type. + * Alias for calling [Builder.invoicingThreshold] with `invoicingThreshold.orElse(null)`. */ - @JsonProperty("initial_phase_order") - @ExcludeMissing - fun _initialPhaseOrder(): JsonField = initialPhaseOrder + fun invoicingThreshold(invoicingThreshold: Optional) = + invoicingThreshold(invoicingThreshold.getOrNull()) /** - * Returns the raw JSON value of [invoicingThreshold]. + * Sets [Builder.invoicingThreshold] to an arbitrary JSON value. * - * Unlike [invoicingThreshold], this method doesn't throw if the JSON field has an - * unexpected type. + * You should usually call [Builder.invoicingThreshold] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("invoicing_threshold") - @ExcludeMissing - fun _invoicingThreshold(): JsonField = invoicingThreshold + fun invoicingThreshold(invoicingThreshold: JsonField) = apply { + body.invoicingThreshold(invoicingThreshold) + } /** - * Returns the raw JSON value of [netTerms]. + * The net terms determines the difference between the invoice date and the issue date for + * the invoice. If you intend the invoice to be due on issue, set this to 0. If not + * provided, this defaults to the value specified in the plan. + */ + fun netTerms(netTerms: Long?) = apply { body.netTerms(netTerms) } + + /** + * Alias for [Builder.netTerms]. * - * Unlike [netTerms], this method doesn't throw if the JSON field has an unexpected type. + * This unboxed primitive overload exists for backwards compatibility. */ - @JsonProperty("net_terms") @ExcludeMissing fun _netTerms(): JsonField = netTerms + fun netTerms(netTerms: Long) = netTerms(netTerms as Long?) + + /** Alias for calling [Builder.netTerms] with `netTerms.orElse(null)`. */ + fun netTerms(netTerms: Optional) = netTerms(netTerms.getOrNull()) /** - * Returns the raw JSON value of [perCreditOverageAmount]. + * Sets [Builder.netTerms] to an arbitrary JSON value. * - * Unlike [perCreditOverageAmount], this method doesn't throw if the JSON field has an - * unexpected type. + * You should usually call [Builder.netTerms] with a well-typed [Long] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ + fun netTerms(netTerms: JsonField) = apply { body.netTerms(netTerms) } + @Deprecated("deprecated") - @JsonProperty("per_credit_overage_amount") - @ExcludeMissing - fun _perCreditOverageAmount(): JsonField = perCreditOverageAmount + fun perCreditOverageAmount(perCreditOverageAmount: Double?) = apply { + body.perCreditOverageAmount(perCreditOverageAmount) + } /** - * Returns the raw JSON value of [planId]. + * Alias for [Builder.perCreditOverageAmount]. * - * Unlike [planId], this method doesn't throw if the JSON field has an unexpected type. + * This unboxed primitive overload exists for backwards compatibility. */ - @JsonProperty("plan_id") @ExcludeMissing fun _planId(): JsonField = planId + @Deprecated("deprecated") + fun perCreditOverageAmount(perCreditOverageAmount: Double) = + perCreditOverageAmount(perCreditOverageAmount as Double?) /** - * Returns the raw JSON value of [planVersionNumber]. - * - * Unlike [planVersionNumber], this method doesn't throw if the JSON field has an unexpected - * type. + * Alias for calling [Builder.perCreditOverageAmount] with + * `perCreditOverageAmount.orElse(null)`. */ - @JsonProperty("plan_version_number") - @ExcludeMissing - fun _planVersionNumber(): JsonField = planVersionNumber + @Deprecated("deprecated") + fun perCreditOverageAmount(perCreditOverageAmount: Optional) = + perCreditOverageAmount(perCreditOverageAmount.getOrNull()) /** - * Returns the raw JSON value of [priceOverrides]. + * Sets [Builder.perCreditOverageAmount] to an arbitrary JSON value. * - * Unlike [priceOverrides], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.perCreditOverageAmount] with a well-typed [Double] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ @Deprecated("deprecated") - @JsonProperty("price_overrides") - @ExcludeMissing - fun _priceOverrides(): JsonField> = priceOverrides + fun perCreditOverageAmount(perCreditOverageAmount: JsonField) = apply { + body.perCreditOverageAmount(perCreditOverageAmount) + } /** - * Returns the raw JSON value of [removeAdjustments]. - * - * Unlike [removeAdjustments], this method doesn't throw if the JSON field has an unexpected - * type. + * The plan that the given subscription should be switched to. Note that either this + * property or `external_plan_id` must be specified. */ - @JsonProperty("remove_adjustments") - @ExcludeMissing - fun _removeAdjustments(): JsonField> = removeAdjustments + fun planId(planId: String?) = apply { body.planId(planId) } + + /** Alias for calling [Builder.planId] with `planId.orElse(null)`. */ + fun planId(planId: Optional) = planId(planId.getOrNull()) /** - * Returns the raw JSON value of [removePrices]. + * Sets [Builder.planId] to an arbitrary JSON value. * - * Unlike [removePrices], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.planId] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - @JsonProperty("remove_prices") - @ExcludeMissing - fun _removePrices(): JsonField> = removePrices + fun planId(planId: JsonField) = apply { body.planId(planId) } /** - * Returns the raw JSON value of [replaceAdjustments]. + * Specifies which version of the plan to change to. If null, the default version will be + * used. + */ + fun planVersionNumber(planVersionNumber: Long?) = apply { + body.planVersionNumber(planVersionNumber) + } + + /** + * Alias for [Builder.planVersionNumber]. * - * Unlike [replaceAdjustments], this method doesn't throw if the JSON field has an - * unexpected type. + * This unboxed primitive overload exists for backwards compatibility. */ - @JsonProperty("replace_adjustments") - @ExcludeMissing - fun _replaceAdjustments(): JsonField> = replaceAdjustments + fun planVersionNumber(planVersionNumber: Long) = + planVersionNumber(planVersionNumber as Long?) + + /** Alias for calling [Builder.planVersionNumber] with `planVersionNumber.orElse(null)`. */ + fun planVersionNumber(planVersionNumber: Optional) = + planVersionNumber(planVersionNumber.getOrNull()) /** - * Returns the raw JSON value of [replacePrices]. + * Sets [Builder.planVersionNumber] to an arbitrary JSON value. * - * Unlike [replacePrices], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.planVersionNumber] with a well-typed [Long] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("replace_prices") - @ExcludeMissing - fun _replacePrices(): JsonField> = replacePrices + fun planVersionNumber(planVersionNumber: JsonField) = apply { + body.planVersionNumber(planVersionNumber) + } + + /** Optionally provide a list of overrides for prices on the plan */ + @Deprecated("deprecated") + fun priceOverrides(priceOverrides: List?) = apply { + body.priceOverrides(priceOverrides) + } + + /** Alias for calling [Builder.priceOverrides] with `priceOverrides.orElse(null)`. */ + @Deprecated("deprecated") + fun priceOverrides(priceOverrides: Optional>) = + priceOverrides(priceOverrides.getOrNull()) /** - * Returns the raw JSON value of [trialDurationDays]. + * Sets [Builder.priceOverrides] to an arbitrary JSON value. * - * Unlike [trialDurationDays], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.priceOverrides] with a well-typed `List` + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. */ - @JsonProperty("trial_duration_days") - @ExcludeMissing - fun _trialDurationDays(): JsonField = trialDurationDays + @Deprecated("deprecated") + fun priceOverrides(priceOverrides: JsonField>) = apply { + body.priceOverrides(priceOverrides) + } /** - * Returns the raw JSON value of [usageCustomerIds]. + * Adds a single [JsonValue] to [priceOverrides]. * - * Unlike [usageCustomerIds], this method doesn't throw if the JSON field has an unexpected - * type. + * @throws IllegalStateException if the field was previously set to a non-list. */ - @JsonProperty("usage_customer_ids") - @ExcludeMissing - fun _usageCustomerIds(): JsonField> = usageCustomerIds + @Deprecated("deprecated") + fun addPriceOverride(priceOverride: JsonValue) = apply { + body.addPriceOverride(priceOverride) + } - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + /** + * Plan adjustments to be removed from the subscription. (Only available for accounts that + * have migrated off of legacy subscription overrides) + */ + fun removeAdjustments(removeAdjustments: List?) = apply { + body.removeAdjustments(removeAdjustments) + } - private var validated: Boolean = false + /** Alias for calling [Builder.removeAdjustments] with `removeAdjustments.orElse(null)`. */ + fun removeAdjustments(removeAdjustments: Optional>) = + removeAdjustments(removeAdjustments.getOrNull()) - fun validate(): Body = apply { - if (validated) { - return@apply - } + /** + * Sets [Builder.removeAdjustments] to an arbitrary JSON value. + * + * You should usually call [Builder.removeAdjustments] with a well-typed + * `List` value instead. This method is primarily for setting the field to + * an undocumented or not yet supported value. + */ + fun removeAdjustments(removeAdjustments: JsonField>) = apply { + body.removeAdjustments(removeAdjustments) + } - changeOption() - addAdjustments().ifPresent { it.forEach { it.validate() } } - addPrices().ifPresent { it.forEach { it.validate() } } - alignBillingWithPlanChangeDate() - autoCollection() - billingCycleAlignment() - billingCycleAnchorConfiguration().ifPresent { it.validate() } - changeDate() - couponRedemptionCode() - creditsOverageRate() - defaultInvoiceMemo() - externalPlanId() - filter() - initialPhaseOrder() - invoicingThreshold() - netTerms() - perCreditOverageAmount() - planId() - planVersionNumber() - priceOverrides() - removeAdjustments().ifPresent { it.forEach { it.validate() } } - removePrices().ifPresent { it.forEach { it.validate() } } - replaceAdjustments().ifPresent { it.forEach { it.validate() } } - replacePrices().ifPresent { it.forEach { it.validate() } } - trialDurationDays() - usageCustomerIds() - validated = true + /** + * Adds a single [RemoveAdjustment] to [removeAdjustments]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addRemoveAdjustment(removeAdjustment: RemoveAdjustment) = apply { + body.addRemoveAdjustment(removeAdjustment) } - fun toBuilder() = Builder().from(this) + /** + * Plan prices to be removed from the subscription. (Only available for accounts that have + * migrated off of legacy subscription overrides) + */ + fun removePrices(removePrices: List?) = apply { + body.removePrices(removePrices) + } - companion object { + /** Alias for calling [Builder.removePrices] with `removePrices.orElse(null)`. */ + fun removePrices(removePrices: Optional>) = + removePrices(removePrices.getOrNull()) - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .changeOption() - * ``` - */ - @JvmStatic fun builder() = Builder() + /** + * Sets [Builder.removePrices] to an arbitrary JSON value. + * + * You should usually call [Builder.removePrices] with a well-typed `List` + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. + */ + fun removePrices(removePrices: JsonField>) = apply { + body.removePrices(removePrices) } - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var changeOption: JsonField? = null - private var addAdjustments: JsonField>? = null - private var addPrices: JsonField>? = null - private var alignBillingWithPlanChangeDate: JsonField = JsonMissing.of() - private var autoCollection: JsonField = JsonMissing.of() - private var billingCycleAlignment: JsonField = JsonMissing.of() - private var billingCycleAnchorConfiguration: - JsonField = - JsonMissing.of() - private var changeDate: JsonField = JsonMissing.of() - private var couponRedemptionCode: JsonField = JsonMissing.of() - private var creditsOverageRate: JsonField = JsonMissing.of() - private var defaultInvoiceMemo: JsonField = JsonMissing.of() - private var externalPlanId: JsonField = JsonMissing.of() - private var filter: JsonField = JsonMissing.of() - private var initialPhaseOrder: JsonField = JsonMissing.of() - private var invoicingThreshold: JsonField = JsonMissing.of() - private var netTerms: JsonField = JsonMissing.of() - private var perCreditOverageAmount: JsonField = JsonMissing.of() - private var planId: JsonField = JsonMissing.of() - private var planVersionNumber: JsonField = JsonMissing.of() - private var priceOverrides: JsonField>? = null - private var removeAdjustments: JsonField>? = null - private var removePrices: JsonField>? = null - private var replaceAdjustments: JsonField>? = null - private var replacePrices: JsonField>? = null - private var trialDurationDays: JsonField = JsonMissing.of() - private var usageCustomerIds: JsonField>? = null - private var additionalProperties: MutableMap = mutableMapOf() + /** + * Adds a single [RemovePrice] to [removePrices]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addRemovePrice(removePrice: RemovePrice) = apply { body.addRemovePrice(removePrice) } - @JvmSynthetic - internal fun from(body: Body) = apply { - changeOption = body.changeOption - addAdjustments = body.addAdjustments.map { it.toMutableList() } - addPrices = body.addPrices.map { it.toMutableList() } - alignBillingWithPlanChangeDate = body.alignBillingWithPlanChangeDate - autoCollection = body.autoCollection - billingCycleAlignment = body.billingCycleAlignment - billingCycleAnchorConfiguration = body.billingCycleAnchorConfiguration - changeDate = body.changeDate - couponRedemptionCode = body.couponRedemptionCode - creditsOverageRate = body.creditsOverageRate - defaultInvoiceMemo = body.defaultInvoiceMemo - externalPlanId = body.externalPlanId - filter = body.filter - initialPhaseOrder = body.initialPhaseOrder - invoicingThreshold = body.invoicingThreshold - netTerms = body.netTerms - perCreditOverageAmount = body.perCreditOverageAmount - planId = body.planId - planVersionNumber = body.planVersionNumber - priceOverrides = body.priceOverrides.map { it.toMutableList() } - removeAdjustments = body.removeAdjustments.map { it.toMutableList() } - removePrices = body.removePrices.map { it.toMutableList() } - replaceAdjustments = body.replaceAdjustments.map { it.toMutableList() } - replacePrices = body.replacePrices.map { it.toMutableList() } - trialDurationDays = body.trialDurationDays - usageCustomerIds = body.usageCustomerIds.map { it.toMutableList() } - additionalProperties = body.additionalProperties.toMutableMap() - } + /** + * Plan adjustments to be replaced with additional adjustments on the subscription. (Only + * available for accounts that have migrated off of legacy subscription overrides) + */ + fun replaceAdjustments(replaceAdjustments: List?) = apply { + body.replaceAdjustments(replaceAdjustments) + } - fun changeOption(changeOption: ChangeOption) = changeOption(JsonField.of(changeOption)) + /** + * Alias for calling [Builder.replaceAdjustments] with `replaceAdjustments.orElse(null)`. + */ + fun replaceAdjustments(replaceAdjustments: Optional>) = + replaceAdjustments(replaceAdjustments.getOrNull()) - /** - * Sets [Builder.changeOption] to an arbitrary JSON value. - * - * You should usually call [Builder.changeOption] with a well-typed [ChangeOption] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun changeOption(changeOption: JsonField) = apply { - this.changeOption = changeOption - } + /** + * Sets [Builder.replaceAdjustments] to an arbitrary JSON value. + * + * You should usually call [Builder.replaceAdjustments] with a well-typed + * `List` value instead. This method is primarily for setting the field + * to an undocumented or not yet supported value. + */ + fun replaceAdjustments(replaceAdjustments: JsonField>) = apply { + body.replaceAdjustments(replaceAdjustments) + } - /** - * Additional adjustments to be added to the subscription. (Only available for accounts - * that have migrated off of legacy subscription overrides) - */ - fun addAdjustments(addAdjustments: List?) = - addAdjustments(JsonField.ofNullable(addAdjustments)) + /** + * Adds a single [ReplaceAdjustment] to [replaceAdjustments]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addReplaceAdjustment(replaceAdjustment: ReplaceAdjustment) = apply { + body.addReplaceAdjustment(replaceAdjustment) + } - /** Alias for calling [Builder.addAdjustments] with `addAdjustments.orElse(null)`. */ - fun addAdjustments(addAdjustments: Optional>) = - addAdjustments(addAdjustments.getOrNull()) + /** + * Plan prices to be replaced with additional prices on the subscription. (Only available + * for accounts that have migrated off of legacy subscription overrides) + */ + fun replacePrices(replacePrices: List?) = apply { + body.replacePrices(replacePrices) + } - /** - * Sets [Builder.addAdjustments] to an arbitrary JSON value. - * - * You should usually call [Builder.addAdjustments] with a well-typed - * `List` value instead. This method is primarily for setting the field - * to an undocumented or not yet supported value. - */ - fun addAdjustments(addAdjustments: JsonField>) = apply { - this.addAdjustments = addAdjustments.map { it.toMutableList() } - } + /** Alias for calling [Builder.replacePrices] with `replacePrices.orElse(null)`. */ + fun replacePrices(replacePrices: Optional>) = + replacePrices(replacePrices.getOrNull()) - /** - * Adds a single [AddAdjustment] to [addAdjustments]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addAddAdjustment(addAdjustment: AddAdjustment) = apply { - addAdjustments = - (addAdjustments ?: JsonField.of(mutableListOf())).also { - checkKnown("addAdjustments", it).add(addAdjustment) - } - } + /** + * Sets [Builder.replacePrices] to an arbitrary JSON value. + * + * You should usually call [Builder.replacePrices] with a well-typed `List` + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. + */ + fun replacePrices(replacePrices: JsonField>) = apply { + body.replacePrices(replacePrices) + } - /** - * Additional prices to be added to the subscription. (Only available for accounts that - * have migrated off of legacy subscription overrides) - */ - fun addPrices(addPrices: List?) = addPrices(JsonField.ofNullable(addPrices)) + /** + * Adds a single [ReplacePrice] to [replacePrices]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addReplacePrice(replacePrice: ReplacePrice) = apply { + body.addReplacePrice(replacePrice) + } - /** Alias for calling [Builder.addPrices] with `addPrices.orElse(null)`. */ - fun addPrices(addPrices: Optional>) = addPrices(addPrices.getOrNull()) + /** + * The duration of the trial period in days. If not provided, this defaults to the value + * specified in the plan. If `0` is provided, the trial on the plan will be skipped. + */ + fun trialDurationDays(trialDurationDays: Long?) = apply { + body.trialDurationDays(trialDurationDays) + } - /** - * Sets [Builder.addPrices] to an arbitrary JSON value. - * - * You should usually call [Builder.addPrices] with a well-typed `List` value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun addPrices(addPrices: JsonField>) = apply { - this.addPrices = addPrices.map { it.toMutableList() } - } + /** + * Alias for [Builder.trialDurationDays]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun trialDurationDays(trialDurationDays: Long) = + trialDurationDays(trialDurationDays as Long?) - /** - * Adds a single [AddPrice] to [addPrices]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addAddPrice(addPrice: AddPrice) = apply { - addPrices = - (addPrices ?: JsonField.of(mutableListOf())).also { - checkKnown("addPrices", it).add(addPrice) - } - } + /** Alias for calling [Builder.trialDurationDays] with `trialDurationDays.orElse(null)`. */ + fun trialDurationDays(trialDurationDays: Optional) = + trialDurationDays(trialDurationDays.getOrNull()) - /** - * [DEPRECATED] Use billing_cycle_alignment instead. Reset billing periods to be aligned - * with the plan change's effective date. - */ - fun alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate: Boolean?) = - alignBillingWithPlanChangeDate(JsonField.ofNullable(alignBillingWithPlanChangeDate)) + /** + * Sets [Builder.trialDurationDays] to an arbitrary JSON value. + * + * You should usually call [Builder.trialDurationDays] with a well-typed [Long] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun trialDurationDays(trialDurationDays: JsonField) = apply { + body.trialDurationDays(trialDurationDays) + } - /** - * Alias for [Builder.alignBillingWithPlanChangeDate]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate: Boolean) = - alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate as Boolean?) + /** + * A list of customer IDs whose usage events will be aggregated and billed under this + * subscription. By default, a subscription only considers usage events associated with its + * attached customer's customer_id. When usage_customer_ids is provided, the subscription + * includes usage events from the specified customers only. Provided usage_customer_ids must + * be either the customer for this subscription itself, or any of that customer's children. + */ + fun usageCustomerIds(usageCustomerIds: List?) = apply { + body.usageCustomerIds(usageCustomerIds) + } - /** - * Alias for calling [Builder.alignBillingWithPlanChangeDate] with - * `alignBillingWithPlanChangeDate.orElse(null)`. - */ - fun alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate: Optional) = - alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate.getOrNull()) + /** Alias for calling [Builder.usageCustomerIds] with `usageCustomerIds.orElse(null)`. */ + fun usageCustomerIds(usageCustomerIds: Optional>) = + usageCustomerIds(usageCustomerIds.getOrNull()) - /** - * Sets [Builder.alignBillingWithPlanChangeDate] to an arbitrary JSON value. - * - * You should usually call [Builder.alignBillingWithPlanChangeDate] with a well-typed - * [Boolean] value instead. This method is primarily for setting the field to an - * undocumented or not yet supported value. - */ - fun alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate: JsonField) = - apply { - this.alignBillingWithPlanChangeDate = alignBillingWithPlanChangeDate - } + /** + * Sets [Builder.usageCustomerIds] to an arbitrary JSON value. + * + * You should usually call [Builder.usageCustomerIds] with a well-typed `List` value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun usageCustomerIds(usageCustomerIds: JsonField>) = apply { + body.usageCustomerIds(usageCustomerIds) + } - /** - * Determines whether issued invoices for this subscription will automatically be - * charged with the saved payment method on the due date. If not specified, this - * defaults to the behavior configured for this customer. - */ - fun autoCollection(autoCollection: Boolean?) = - autoCollection(JsonField.ofNullable(autoCollection)) + /** + * Adds a single [String] to [usageCustomerIds]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addUsageCustomerId(usageCustomerId: String) = apply { + body.addUsageCustomerId(usageCustomerId) + } - /** - * Alias for [Builder.autoCollection]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun autoCollection(autoCollection: Boolean) = autoCollection(autoCollection as Boolean?) + fun additionalBodyProperties(additionalBodyProperties: Map) = apply { + body.additionalProperties(additionalBodyProperties) + } - /** Alias for calling [Builder.autoCollection] with `autoCollection.orElse(null)`. */ - fun autoCollection(autoCollection: Optional) = - autoCollection(autoCollection.getOrNull()) + fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { + body.putAdditionalProperty(key, value) + } - /** - * Sets [Builder.autoCollection] to an arbitrary JSON value. - * - * You should usually call [Builder.autoCollection] with a well-typed [Boolean] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun autoCollection(autoCollection: JsonField) = apply { - this.autoCollection = autoCollection + fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = + apply { + body.putAllAdditionalProperties(additionalBodyProperties) } - /** - * Reset billing periods to be aligned with the plan change's effective date or start of - * the month. Defaults to `unchanged` which keeps subscription's existing billing cycle - * alignment. - */ - fun billingCycleAlignment(billingCycleAlignment: BillingCycleAlignment?) = - billingCycleAlignment(JsonField.ofNullable(billingCycleAlignment)) - - /** - * Alias for calling [Builder.billingCycleAlignment] with - * `billingCycleAlignment.orElse(null)`. - */ - fun billingCycleAlignment(billingCycleAlignment: Optional) = - billingCycleAlignment(billingCycleAlignment.getOrNull()) - - /** - * Sets [Builder.billingCycleAlignment] to an arbitrary JSON value. - * - * You should usually call [Builder.billingCycleAlignment] with a well-typed - * [BillingCycleAlignment] value instead. This method is primarily for setting the field - * to an undocumented or not yet supported value. - */ - fun billingCycleAlignment(billingCycleAlignment: JsonField) = - apply { - this.billingCycleAlignment = billingCycleAlignment - } + fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } - fun billingCycleAnchorConfiguration( - billingCycleAnchorConfiguration: BillingCycleAnchorConfiguration? - ) = - billingCycleAnchorConfiguration( - JsonField.ofNullable(billingCycleAnchorConfiguration) - ) + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + body.removeAllAdditionalProperties(keys) + } - /** - * Alias for calling [Builder.billingCycleAnchorConfiguration] with - * `billingCycleAnchorConfiguration.orElse(null)`. - */ - fun billingCycleAnchorConfiguration( - billingCycleAnchorConfiguration: Optional - ) = billingCycleAnchorConfiguration(billingCycleAnchorConfiguration.getOrNull()) + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - /** - * Sets [Builder.billingCycleAnchorConfiguration] to an arbitrary JSON value. - * - * You should usually call [Builder.billingCycleAnchorConfiguration] with a well-typed - * [BillingCycleAnchorConfiguration] value instead. This method is primarily for setting - * the field to an undocumented or not yet supported value. - */ - fun billingCycleAnchorConfiguration( - billingCycleAnchorConfiguration: JsonField - ) = apply { this.billingCycleAnchorConfiguration = billingCycleAnchorConfiguration } + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - /** - * The date that the plan change should take effect. This parameter can only be passed - * if the `change_option` is `requested_date`. If a date with no time is passed, the - * plan change will happen at midnight in the customer's timezone. - */ - fun changeDate(changeDate: OffsetDateTime?) = - changeDate(JsonField.ofNullable(changeDate)) + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) + } - /** Alias for calling [Builder.changeDate] with `changeDate.orElse(null)`. */ - fun changeDate(changeDate: Optional) = - changeDate(changeDate.getOrNull()) + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } - /** - * Sets [Builder.changeDate] to an arbitrary JSON value. - * - * You should usually call [Builder.changeDate] with a well-typed [OffsetDateTime] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun changeDate(changeDate: JsonField) = apply { - this.changeDate = changeDate - } + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - /** - * Redemption code to be used for this subscription. If the coupon cannot be found by - * its redemption code, or cannot be redeemed, an error response will be returned and - * the subscription creation or plan change will not be scheduled. - */ - fun couponRedemptionCode(couponRedemptionCode: String?) = - couponRedemptionCode(JsonField.ofNullable(couponRedemptionCode)) + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - /** - * Alias for calling [Builder.couponRedemptionCode] with - * `couponRedemptionCode.orElse(null)`. - */ - fun couponRedemptionCode(couponRedemptionCode: Optional) = - couponRedemptionCode(couponRedemptionCode.getOrNull()) + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } - /** - * Sets [Builder.couponRedemptionCode] to an arbitrary JSON value. - * - * You should usually call [Builder.couponRedemptionCode] with a well-typed [String] - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - fun couponRedemptionCode(couponRedemptionCode: JsonField) = apply { - this.couponRedemptionCode = couponRedemptionCode - } + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } - @Deprecated("deprecated") - fun creditsOverageRate(creditsOverageRate: Double?) = - creditsOverageRate(JsonField.ofNullable(creditsOverageRate)) + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** - * Alias for [Builder.creditsOverageRate]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - @Deprecated("deprecated") - fun creditsOverageRate(creditsOverageRate: Double) = - creditsOverageRate(creditsOverageRate as Double?) + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** - * Alias for calling [Builder.creditsOverageRate] with - * `creditsOverageRate.orElse(null)`. - */ - @Deprecated("deprecated") - fun creditsOverageRate(creditsOverageRate: Optional) = - creditsOverageRate(creditsOverageRate.getOrNull()) + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } - /** - * Sets [Builder.creditsOverageRate] to an arbitrary JSON value. - * - * You should usually call [Builder.creditsOverageRate] with a well-typed [Double] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - @Deprecated("deprecated") - fun creditsOverageRate(creditsOverageRate: JsonField) = apply { - this.creditsOverageRate = creditsOverageRate - } + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } - /** - * Determines the default memo on this subscription's invoices. Note that if this is not - * provided, it is determined by the plan configuration. - */ - fun defaultInvoiceMemo(defaultInvoiceMemo: String?) = - defaultInvoiceMemo(JsonField.ofNullable(defaultInvoiceMemo)) + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - /** - * Alias for calling [Builder.defaultInvoiceMemo] with - * `defaultInvoiceMemo.orElse(null)`. - */ - fun defaultInvoiceMemo(defaultInvoiceMemo: Optional) = - defaultInvoiceMemo(defaultInvoiceMemo.getOrNull()) + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - /** - * Sets [Builder.defaultInvoiceMemo] to an arbitrary JSON value. - * - * You should usually call [Builder.defaultInvoiceMemo] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun defaultInvoiceMemo(defaultInvoiceMemo: JsonField) = apply { - this.defaultInvoiceMemo = defaultInvoiceMemo - } + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } - /** - * The external_plan_id of the plan that the given subscription should be switched to. - * Note that either this property or `plan_id` must be specified. - */ - fun externalPlanId(externalPlanId: String?) = - externalPlanId(JsonField.ofNullable(externalPlanId)) + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } - /** Alias for calling [Builder.externalPlanId] with `externalPlanId.orElse(null)`. */ - fun externalPlanId(externalPlanId: Optional) = - externalPlanId(externalPlanId.getOrNull()) + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } - /** - * Sets [Builder.externalPlanId] to an arbitrary JSON value. - * - * You should usually call [Builder.externalPlanId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun externalPlanId(externalPlanId: JsonField) = apply { - this.externalPlanId = externalPlanId + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) } - /** - * An additional filter to apply to usage queries. This filter must be expressed as a - * boolean [computed property](/extensibility/advanced-metrics#computed-properties). If - * null, usage queries will not include any additional filter. - */ - fun filter(filter: String?) = filter(JsonField.ofNullable(filter)) - - /** Alias for calling [Builder.filter] with `filter.orElse(null)`. */ - fun filter(filter: Optional) = filter(filter.getOrNull()) - - /** - * Sets [Builder.filter] to an arbitrary JSON value. - * - * You should usually call [Builder.filter] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun filter(filter: JsonField) = apply { this.filter = filter } - - /** The phase of the plan to start with */ - fun initialPhaseOrder(initialPhaseOrder: Long?) = - initialPhaseOrder(JsonField.ofNullable(initialPhaseOrder)) + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) + } - /** - * Alias for [Builder.initialPhaseOrder]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun initialPhaseOrder(initialPhaseOrder: Long) = - initialPhaseOrder(initialPhaseOrder as Long?) + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } - /** - * Alias for calling [Builder.initialPhaseOrder] with `initialPhaseOrder.orElse(null)`. - */ - fun initialPhaseOrder(initialPhaseOrder: Optional) = - initialPhaseOrder(initialPhaseOrder.getOrNull()) + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - /** - * Sets [Builder.initialPhaseOrder] to an arbitrary JSON value. - * - * You should usually call [Builder.initialPhaseOrder] with a well-typed [Long] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun initialPhaseOrder(initialPhaseOrder: JsonField) = apply { - this.initialPhaseOrder = initialPhaseOrder + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } - /** - * When this subscription's accrued usage reaches this threshold, an invoice will be - * issued for the subscription. If not specified, invoices will only be issued at the - * end of the billing period. - */ - fun invoicingThreshold(invoicingThreshold: String?) = - invoicingThreshold(JsonField.ofNullable(invoicingThreshold)) + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } - /** - * Alias for calling [Builder.invoicingThreshold] with - * `invoicingThreshold.orElse(null)`. - */ - fun invoicingThreshold(invoicingThreshold: Optional) = - invoicingThreshold(invoicingThreshold.getOrNull()) + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } - /** - * Sets [Builder.invoicingThreshold] to an arbitrary JSON value. - * - * You should usually call [Builder.invoicingThreshold] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun invoicingThreshold(invoicingThreshold: JsonField) = apply { - this.invoicingThreshold = invoicingThreshold - } + /** + * Returns an immutable instance of [SubscriptionSchedulePlanChangeParams]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .subscriptionId() + * .changeOption() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): SubscriptionSchedulePlanChangeParams = + SubscriptionSchedulePlanChangeParams( + checkRequired("subscriptionId", subscriptionId), + body.build(), + additionalHeaders.build(), + additionalQueryParams.build(), + ) + } - /** - * The net terms determines the difference between the invoice date and the issue date - * for the invoice. If you intend the invoice to be due on issue, set this to 0. If not - * provided, this defaults to the value specified in the plan. - */ - fun netTerms(netTerms: Long?) = netTerms(JsonField.ofNullable(netTerms)) + @JvmSynthetic internal fun _body(): Body = body - /** - * Alias for [Builder.netTerms]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun netTerms(netTerms: Long) = netTerms(netTerms as Long?) + fun _pathParam(index: Int): String = + when (index) { + 0 -> subscriptionId + else -> "" + } - /** Alias for calling [Builder.netTerms] with `netTerms.orElse(null)`. */ - fun netTerms(netTerms: Optional) = netTerms(netTerms.getOrNull()) + override fun _headers(): Headers = additionalHeaders - /** - * Sets [Builder.netTerms] to an arbitrary JSON value. - * - * You should usually call [Builder.netTerms] with a well-typed [Long] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun netTerms(netTerms: JsonField) = apply { this.netTerms = netTerms } + override fun _queryParams(): QueryParams = additionalQueryParams - @Deprecated("deprecated") - fun perCreditOverageAmount(perCreditOverageAmount: Double?) = - perCreditOverageAmount(JsonField.ofNullable(perCreditOverageAmount)) + class Body + private constructor( + private val changeOption: JsonField, + private val addAdjustments: JsonField>, + private val addPrices: JsonField>, + private val alignBillingWithPlanChangeDate: JsonField, + private val autoCollection: JsonField, + private val billingCycleAlignment: JsonField, + private val billingCycleAnchorConfiguration: JsonField, + private val changeDate: JsonField, + private val couponRedemptionCode: JsonField, + private val creditsOverageRate: JsonField, + private val defaultInvoiceMemo: JsonField, + private val externalPlanId: JsonField, + private val filter: JsonField, + private val initialPhaseOrder: JsonField, + private val invoicingThreshold: JsonField, + private val netTerms: JsonField, + private val perCreditOverageAmount: JsonField, + private val planId: JsonField, + private val planVersionNumber: JsonField, + private val priceOverrides: JsonField>, + private val removeAdjustments: JsonField>, + private val removePrices: JsonField>, + private val replaceAdjustments: JsonField>, + private val replacePrices: JsonField>, + private val trialDurationDays: JsonField, + private val usageCustomerIds: JsonField>, + private val additionalProperties: MutableMap, + ) { - /** - * Alias for [Builder.perCreditOverageAmount]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - @Deprecated("deprecated") - fun perCreditOverageAmount(perCreditOverageAmount: Double) = - perCreditOverageAmount(perCreditOverageAmount as Double?) - - /** - * Alias for calling [Builder.perCreditOverageAmount] with - * `perCreditOverageAmount.orElse(null)`. - */ - @Deprecated("deprecated") - fun perCreditOverageAmount(perCreditOverageAmount: Optional) = - perCreditOverageAmount(perCreditOverageAmount.getOrNull()) - - /** - * Sets [Builder.perCreditOverageAmount] to an arbitrary JSON value. - * - * You should usually call [Builder.perCreditOverageAmount] with a well-typed [Double] - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - @Deprecated("deprecated") - fun perCreditOverageAmount(perCreditOverageAmount: JsonField) = apply { - this.perCreditOverageAmount = perCreditOverageAmount - } - - /** - * The plan that the given subscription should be switched to. Note that either this - * property or `external_plan_id` must be specified. - */ - fun planId(planId: String?) = planId(JsonField.ofNullable(planId)) - - /** Alias for calling [Builder.planId] with `planId.orElse(null)`. */ - fun planId(planId: Optional) = planId(planId.getOrNull()) - - /** - * Sets [Builder.planId] to an arbitrary JSON value. - * - * You should usually call [Builder.planId] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun planId(planId: JsonField) = apply { this.planId = planId } - - /** - * Specifies which version of the plan to change to. If null, the default version will - * be used. - */ - fun planVersionNumber(planVersionNumber: Long?) = - planVersionNumber(JsonField.ofNullable(planVersionNumber)) - - /** - * Alias for [Builder.planVersionNumber]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun planVersionNumber(planVersionNumber: Long) = - planVersionNumber(planVersionNumber as Long?) - - /** - * Alias for calling [Builder.planVersionNumber] with `planVersionNumber.orElse(null)`. - */ - fun planVersionNumber(planVersionNumber: Optional) = - planVersionNumber(planVersionNumber.getOrNull()) - - /** - * Sets [Builder.planVersionNumber] to an arbitrary JSON value. - * - * You should usually call [Builder.planVersionNumber] with a well-typed [Long] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun planVersionNumber(planVersionNumber: JsonField) = apply { - this.planVersionNumber = planVersionNumber - } - - /** Optionally provide a list of overrides for prices on the plan */ - @Deprecated("deprecated") - fun priceOverrides(priceOverrides: List?) = - priceOverrides(JsonField.ofNullable(priceOverrides)) - - /** Alias for calling [Builder.priceOverrides] with `priceOverrides.orElse(null)`. */ - @Deprecated("deprecated") - fun priceOverrides(priceOverrides: Optional>) = - priceOverrides(priceOverrides.getOrNull()) - - /** - * Sets [Builder.priceOverrides] to an arbitrary JSON value. - * - * You should usually call [Builder.priceOverrides] with a well-typed `List` - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - @Deprecated("deprecated") - fun priceOverrides(priceOverrides: JsonField>) = apply { - this.priceOverrides = priceOverrides.map { it.toMutableList() } - } - - /** - * Adds a single [JsonValue] to [priceOverrides]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - @Deprecated("deprecated") - fun addPriceOverride(priceOverride: JsonValue) = apply { - priceOverrides = - (priceOverrides ?: JsonField.of(mutableListOf())).also { - checkKnown("priceOverrides", it).add(priceOverride) - } - } - - /** - * Plan adjustments to be removed from the subscription. (Only available for accounts - * that have migrated off of legacy subscription overrides) - */ - fun removeAdjustments(removeAdjustments: List?) = - removeAdjustments(JsonField.ofNullable(removeAdjustments)) - - /** - * Alias for calling [Builder.removeAdjustments] with `removeAdjustments.orElse(null)`. - */ - fun removeAdjustments(removeAdjustments: Optional>) = - removeAdjustments(removeAdjustments.getOrNull()) - - /** - * Sets [Builder.removeAdjustments] to an arbitrary JSON value. - * - * You should usually call [Builder.removeAdjustments] with a well-typed - * `List` value instead. This method is primarily for setting the - * field to an undocumented or not yet supported value. - */ - fun removeAdjustments(removeAdjustments: JsonField>) = apply { - this.removeAdjustments = removeAdjustments.map { it.toMutableList() } - } - - /** - * Adds a single [RemoveAdjustment] to [removeAdjustments]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addRemoveAdjustment(removeAdjustment: RemoveAdjustment) = apply { - removeAdjustments = - (removeAdjustments ?: JsonField.of(mutableListOf())).also { - checkKnown("removeAdjustments", it).add(removeAdjustment) - } - } - - /** - * Plan prices to be removed from the subscription. (Only available for accounts that - * have migrated off of legacy subscription overrides) - */ - fun removePrices(removePrices: List?) = - removePrices(JsonField.ofNullable(removePrices)) - - /** Alias for calling [Builder.removePrices] with `removePrices.orElse(null)`. */ - fun removePrices(removePrices: Optional>) = - removePrices(removePrices.getOrNull()) - - /** - * Sets [Builder.removePrices] to an arbitrary JSON value. - * - * You should usually call [Builder.removePrices] with a well-typed `List` - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - fun removePrices(removePrices: JsonField>) = apply { - this.removePrices = removePrices.map { it.toMutableList() } - } - - /** - * Adds a single [RemovePrice] to [removePrices]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addRemovePrice(removePrice: RemovePrice) = apply { - removePrices = - (removePrices ?: JsonField.of(mutableListOf())).also { - checkKnown("removePrices", it).add(removePrice) - } - } - - /** - * Plan adjustments to be replaced with additional adjustments on the subscription. - * (Only available for accounts that have migrated off of legacy subscription overrides) - */ - fun replaceAdjustments(replaceAdjustments: List?) = - replaceAdjustments(JsonField.ofNullable(replaceAdjustments)) - - /** - * Alias for calling [Builder.replaceAdjustments] with - * `replaceAdjustments.orElse(null)`. - */ - fun replaceAdjustments(replaceAdjustments: Optional>) = - replaceAdjustments(replaceAdjustments.getOrNull()) - - /** - * Sets [Builder.replaceAdjustments] to an arbitrary JSON value. - * - * You should usually call [Builder.replaceAdjustments] with a well-typed - * `List` value instead. This method is primarily for setting the - * field to an undocumented or not yet supported value. - */ - fun replaceAdjustments(replaceAdjustments: JsonField>) = apply { - this.replaceAdjustments = replaceAdjustments.map { it.toMutableList() } - } - - /** - * Adds a single [ReplaceAdjustment] to [replaceAdjustments]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addReplaceAdjustment(replaceAdjustment: ReplaceAdjustment) = apply { - replaceAdjustments = - (replaceAdjustments ?: JsonField.of(mutableListOf())).also { - checkKnown("replaceAdjustments", it).add(replaceAdjustment) - } - } - - /** - * Plan prices to be replaced with additional prices on the subscription. (Only - * available for accounts that have migrated off of legacy subscription overrides) - */ - fun replacePrices(replacePrices: List?) = - replacePrices(JsonField.ofNullable(replacePrices)) - - /** Alias for calling [Builder.replacePrices] with `replacePrices.orElse(null)`. */ - fun replacePrices(replacePrices: Optional>) = - replacePrices(replacePrices.getOrNull()) - - /** - * Sets [Builder.replacePrices] to an arbitrary JSON value. - * - * You should usually call [Builder.replacePrices] with a well-typed - * `List` value instead. This method is primarily for setting the field to - * an undocumented or not yet supported value. - */ - fun replacePrices(replacePrices: JsonField>) = apply { - this.replacePrices = replacePrices.map { it.toMutableList() } - } - - /** - * Adds a single [ReplacePrice] to [replacePrices]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addReplacePrice(replacePrice: ReplacePrice) = apply { - replacePrices = - (replacePrices ?: JsonField.of(mutableListOf())).also { - checkKnown("replacePrices", it).add(replacePrice) - } - } - - /** - * The duration of the trial period in days. If not provided, this defaults to the value - * specified in the plan. If `0` is provided, the trial on the plan will be skipped. - */ - fun trialDurationDays(trialDurationDays: Long?) = - trialDurationDays(JsonField.ofNullable(trialDurationDays)) - - /** - * Alias for [Builder.trialDurationDays]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun trialDurationDays(trialDurationDays: Long) = - trialDurationDays(trialDurationDays as Long?) - - /** - * Alias for calling [Builder.trialDurationDays] with `trialDurationDays.orElse(null)`. - */ - fun trialDurationDays(trialDurationDays: Optional) = - trialDurationDays(trialDurationDays.getOrNull()) - - /** - * Sets [Builder.trialDurationDays] to an arbitrary JSON value. - * - * You should usually call [Builder.trialDurationDays] with a well-typed [Long] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun trialDurationDays(trialDurationDays: JsonField) = apply { - this.trialDurationDays = trialDurationDays - } - - /** - * A list of customer IDs whose usage events will be aggregated and billed under this - * subscription. By default, a subscription only considers usage events associated with - * its attached customer's customer_id. When usage_customer_ids is provided, the - * subscription includes usage events from the specified customers only. Provided - * usage_customer_ids must be either the customer for this subscription itself, or any - * of that customer's children. - */ - fun usageCustomerIds(usageCustomerIds: List?) = - usageCustomerIds(JsonField.ofNullable(usageCustomerIds)) - - /** - * Alias for calling [Builder.usageCustomerIds] with `usageCustomerIds.orElse(null)`. - */ - fun usageCustomerIds(usageCustomerIds: Optional>) = - usageCustomerIds(usageCustomerIds.getOrNull()) - - /** - * Sets [Builder.usageCustomerIds] to an arbitrary JSON value. - * - * You should usually call [Builder.usageCustomerIds] with a well-typed `List` - * value instead. This method is primarily for setting the field to an undocumented or - * not yet supported value. - */ - fun usageCustomerIds(usageCustomerIds: JsonField>) = apply { - this.usageCustomerIds = usageCustomerIds.map { it.toMutableList() } - } - - /** - * Adds a single [String] to [usageCustomerIds]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addUsageCustomerId(usageCustomerId: String) = apply { - usageCustomerIds = - (usageCustomerIds ?: JsonField.of(mutableListOf())).also { - checkKnown("usageCustomerIds", it).add(usageCustomerId) - } - } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @JsonProperty("change_option") + @ExcludeMissing + changeOption: JsonField = JsonMissing.of(), + @JsonProperty("add_adjustments") + @ExcludeMissing + addAdjustments: JsonField> = JsonMissing.of(), + @JsonProperty("add_prices") + @ExcludeMissing + addPrices: JsonField> = JsonMissing.of(), + @JsonProperty("align_billing_with_plan_change_date") + @ExcludeMissing + alignBillingWithPlanChangeDate: JsonField = JsonMissing.of(), + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_alignment") + @ExcludeMissing + billingCycleAlignment: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_anchor_configuration") + @ExcludeMissing + billingCycleAnchorConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("change_date") + @ExcludeMissing + changeDate: JsonField = JsonMissing.of(), + @JsonProperty("coupon_redemption_code") + @ExcludeMissing + couponRedemptionCode: JsonField = JsonMissing.of(), + @JsonProperty("credits_overage_rate") + @ExcludeMissing + creditsOverageRate: JsonField = JsonMissing.of(), + @JsonProperty("default_invoice_memo") + @ExcludeMissing + defaultInvoiceMemo: JsonField = JsonMissing.of(), + @JsonProperty("external_plan_id") + @ExcludeMissing + externalPlanId: JsonField = JsonMissing.of(), + @JsonProperty("filter") @ExcludeMissing filter: JsonField = JsonMissing.of(), + @JsonProperty("initial_phase_order") + @ExcludeMissing + initialPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_threshold") + @ExcludeMissing + invoicingThreshold: JsonField = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("per_credit_overage_amount") + @ExcludeMissing + perCreditOverageAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_id") @ExcludeMissing planId: JsonField = JsonMissing.of(), + @JsonProperty("plan_version_number") + @ExcludeMissing + planVersionNumber: JsonField = JsonMissing.of(), + @JsonProperty("price_overrides") + @ExcludeMissing + priceOverrides: JsonField> = JsonMissing.of(), + @JsonProperty("remove_adjustments") + @ExcludeMissing + removeAdjustments: JsonField> = JsonMissing.of(), + @JsonProperty("remove_prices") + @ExcludeMissing + removePrices: JsonField> = JsonMissing.of(), + @JsonProperty("replace_adjustments") + @ExcludeMissing + replaceAdjustments: JsonField> = JsonMissing.of(), + @JsonProperty("replace_prices") + @ExcludeMissing + replacePrices: JsonField> = JsonMissing.of(), + @JsonProperty("trial_duration_days") + @ExcludeMissing + trialDurationDays: JsonField = JsonMissing.of(), + @JsonProperty("usage_customer_ids") + @ExcludeMissing + usageCustomerIds: JsonField> = JsonMissing.of(), + ) : this( + changeOption, + addAdjustments, + addPrices, + alignBillingWithPlanChangeDate, + autoCollection, + billingCycleAlignment, + billingCycleAnchorConfiguration, + changeDate, + couponRedemptionCode, + creditsOverageRate, + defaultInvoiceMemo, + externalPlanId, + filter, + initialPhaseOrder, + invoicingThreshold, + netTerms, + perCreditOverageAmount, + planId, + planVersionNumber, + priceOverrides, + removeAdjustments, + removePrices, + replaceAdjustments, + replacePrices, + trialDurationDays, + usageCustomerIds, + mutableMapOf(), + ) - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun changeOption(): ChangeOption = changeOption.getRequired("change_option") - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + /** + * Additional adjustments to be added to the subscription. (Only available for accounts that + * have migrated off of legacy subscription overrides) + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun addAdjustments(): Optional> = + Optional.ofNullable(addAdjustments.getNullable("add_adjustments")) - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } + /** + * Additional prices to be added to the subscription. (Only available for accounts that have + * migrated off of legacy subscription overrides) + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun addPrices(): Optional> = + Optional.ofNullable(addPrices.getNullable("add_prices")) - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .changeOption() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body( - checkRequired("changeOption", changeOption), - (addAdjustments ?: JsonMissing.of()).map { it.toImmutable() }, - (addPrices ?: JsonMissing.of()).map { it.toImmutable() }, - alignBillingWithPlanChangeDate, - autoCollection, - billingCycleAlignment, - billingCycleAnchorConfiguration, - changeDate, - couponRedemptionCode, - creditsOverageRate, - defaultInvoiceMemo, - externalPlanId, - filter, - initialPhaseOrder, - invoicingThreshold, - netTerms, - perCreditOverageAmount, - planId, - planVersionNumber, - (priceOverrides ?: JsonMissing.of()).map { it.toImmutable() }, - (removeAdjustments ?: JsonMissing.of()).map { it.toImmutable() }, - (removePrices ?: JsonMissing.of()).map { it.toImmutable() }, - (replaceAdjustments ?: JsonMissing.of()).map { it.toImmutable() }, - (replacePrices ?: JsonMissing.of()).map { it.toImmutable() }, - trialDurationDays, - (usageCustomerIds ?: JsonMissing.of()).map { it.toImmutable() }, - additionalProperties.toImmutable(), - ) - } + /** + * [DEPRECATED] Use billing_cycle_alignment instead. Reset billing periods to be aligned + * with the plan change's effective date. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun alignBillingWithPlanChangeDate(): Optional = + Optional.ofNullable( + alignBillingWithPlanChangeDate.getNullable("align_billing_with_plan_change_date") + ) - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } + /** + * Determines whether issued invoices for this subscription will automatically be charged + * with the saved payment method on the due date. If not specified, this defaults to the + * behavior configured for this customer. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun autoCollection(): Optional = + Optional.ofNullable(autoCollection.getNullable("auto_collection")) - return /* spotless:off */ other is Body && changeOption == other.changeOption && addAdjustments == other.addAdjustments && addPrices == other.addPrices && alignBillingWithPlanChangeDate == other.alignBillingWithPlanChangeDate && autoCollection == other.autoCollection && billingCycleAlignment == other.billingCycleAlignment && billingCycleAnchorConfiguration == other.billingCycleAnchorConfiguration && changeDate == other.changeDate && couponRedemptionCode == other.couponRedemptionCode && creditsOverageRate == other.creditsOverageRate && defaultInvoiceMemo == other.defaultInvoiceMemo && externalPlanId == other.externalPlanId && filter == other.filter && initialPhaseOrder == other.initialPhaseOrder && invoicingThreshold == other.invoicingThreshold && netTerms == other.netTerms && perCreditOverageAmount == other.perCreditOverageAmount && planId == other.planId && planVersionNumber == other.planVersionNumber && priceOverrides == other.priceOverrides && removeAdjustments == other.removeAdjustments && removePrices == other.removePrices && replaceAdjustments == other.replaceAdjustments && replacePrices == other.replacePrices && trialDurationDays == other.trialDurationDays && usageCustomerIds == other.usageCustomerIds && additionalProperties == other.additionalProperties /* spotless:on */ - } + /** + * Reset billing periods to be aligned with the plan change's effective date or start of the + * month. Defaults to `unchanged` which keeps subscription's existing billing cycle + * alignment. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun billingCycleAlignment(): Optional = + Optional.ofNullable(billingCycleAlignment.getNullable("billing_cycle_alignment")) - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(changeOption, addAdjustments, addPrices, alignBillingWithPlanChangeDate, autoCollection, billingCycleAlignment, billingCycleAnchorConfiguration, changeDate, couponRedemptionCode, creditsOverageRate, defaultInvoiceMemo, externalPlanId, filter, initialPhaseOrder, invoicingThreshold, netTerms, perCreditOverageAmount, planId, planVersionNumber, priceOverrides, removeAdjustments, removePrices, replaceAdjustments, replacePrices, trialDurationDays, usageCustomerIds, additionalProperties) } - /* spotless:on */ + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun billingCycleAnchorConfiguration(): Optional = + Optional.ofNullable( + billingCycleAnchorConfiguration.getNullable("billing_cycle_anchor_configuration") + ) - override fun hashCode(): Int = hashCode + /** + * The date that the plan change should take effect. This parameter can only be passed if + * the `change_option` is `requested_date`. If a date with no time is passed, the plan + * change will happen at midnight in the customer's timezone. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun changeDate(): Optional = + Optional.ofNullable(changeDate.getNullable("change_date")) - override fun toString() = - "Body{changeOption=$changeOption, addAdjustments=$addAdjustments, addPrices=$addPrices, alignBillingWithPlanChangeDate=$alignBillingWithPlanChangeDate, autoCollection=$autoCollection, billingCycleAlignment=$billingCycleAlignment, billingCycleAnchorConfiguration=$billingCycleAnchorConfiguration, changeDate=$changeDate, couponRedemptionCode=$couponRedemptionCode, creditsOverageRate=$creditsOverageRate, defaultInvoiceMemo=$defaultInvoiceMemo, externalPlanId=$externalPlanId, filter=$filter, initialPhaseOrder=$initialPhaseOrder, invoicingThreshold=$invoicingThreshold, netTerms=$netTerms, perCreditOverageAmount=$perCreditOverageAmount, planId=$planId, planVersionNumber=$planVersionNumber, priceOverrides=$priceOverrides, removeAdjustments=$removeAdjustments, removePrices=$removePrices, replaceAdjustments=$replaceAdjustments, replacePrices=$replacePrices, trialDurationDays=$trialDurationDays, usageCustomerIds=$usageCustomerIds, additionalProperties=$additionalProperties}" - } + /** + * Redemption code to be used for this subscription. If the coupon cannot be found by its + * redemption code, or cannot be redeemed, an error response will be returned and the + * subscription creation or plan change will not be scheduled. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun couponRedemptionCode(): Optional = + Optional.ofNullable(couponRedemptionCode.getNullable("coupon_redemption_code")) - fun toBuilder() = Builder().from(this) + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + @Deprecated("deprecated") + fun creditsOverageRate(): Optional = + Optional.ofNullable(creditsOverageRate.getNullable("credits_overage_rate")) - companion object { + /** + * Determines the default memo on this subscription's invoices. Note that if this is not + * provided, it is determined by the plan configuration. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun defaultInvoiceMemo(): Optional = + Optional.ofNullable(defaultInvoiceMemo.getNullable("default_invoice_memo")) /** - * Returns a mutable builder for constructing an instance of - * [SubscriptionSchedulePlanChangeParams]. + * The external_plan_id of the plan that the given subscription should be switched to. Note + * that either this property or `plan_id` must be specified. * - * The following fields are required: - * ```java - * .subscriptionId() - * .changeOption() - * ``` + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - @JvmStatic fun builder() = Builder() - } + fun externalPlanId(): Optional = + Optional.ofNullable(externalPlanId.getNullable("external_plan_id")) - /** A builder for [SubscriptionSchedulePlanChangeParams]. */ - @NoAutoDetect - class Builder internal constructor() { + /** + * An additional filter to apply to usage queries. This filter must be expressed as a + * boolean [computed property](/extensibility/advanced-metrics#computed-properties). If + * null, usage queries will not include any additional filter. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun filter(): Optional = Optional.ofNullable(filter.getNullable("filter")) - private var subscriptionId: String? = null - private var body: Body.Builder = Body.builder() - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + /** + * The phase of the plan to start with + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun initialPhaseOrder(): Optional = + Optional.ofNullable(initialPhaseOrder.getNullable("initial_phase_order")) - @JvmSynthetic - internal fun from( - subscriptionSchedulePlanChangeParams: SubscriptionSchedulePlanChangeParams - ) = apply { - subscriptionId = subscriptionSchedulePlanChangeParams.subscriptionId - body = subscriptionSchedulePlanChangeParams.body.toBuilder() - additionalHeaders = subscriptionSchedulePlanChangeParams.additionalHeaders.toBuilder() - additionalQueryParams = - subscriptionSchedulePlanChangeParams.additionalQueryParams.toBuilder() - } + /** + * When this subscription's accrued usage reaches this threshold, an invoice will be issued + * for the subscription. If not specified, invoices will only be issued at the end of the + * billing period. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun invoicingThreshold(): Optional = + Optional.ofNullable(invoicingThreshold.getNullable("invoicing_threshold")) - fun subscriptionId(subscriptionId: String) = apply { this.subscriptionId = subscriptionId } + /** + * The net terms determines the difference between the invoice date and the issue date for + * the invoice. If you intend the invoice to be due on issue, set this to 0. If not + * provided, this defaults to the value specified in the plan. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun netTerms(): Optional = Optional.ofNullable(netTerms.getNullable("net_terms")) - fun changeOption(changeOption: ChangeOption) = apply { body.changeOption(changeOption) } + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + @Deprecated("deprecated") + fun perCreditOverageAmount(): Optional = + Optional.ofNullable(perCreditOverageAmount.getNullable("per_credit_overage_amount")) /** - * Sets [Builder.changeOption] to an arbitrary JSON value. + * The plan that the given subscription should be switched to. Note that either this + * property or `external_plan_id` must be specified. * - * You should usually call [Builder.changeOption] with a well-typed [ChangeOption] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun changeOption(changeOption: JsonField) = apply { - body.changeOption(changeOption) - } + fun planId(): Optional = Optional.ofNullable(planId.getNullable("plan_id")) /** - * Additional adjustments to be added to the subscription. (Only available for accounts that - * have migrated off of legacy subscription overrides) + * Specifies which version of the plan to change to. If null, the default version will be + * used. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun addAdjustments(addAdjustments: List?) = apply { - body.addAdjustments(addAdjustments) - } - - /** Alias for calling [Builder.addAdjustments] with `addAdjustments.orElse(null)`. */ - fun addAdjustments(addAdjustments: Optional>) = - addAdjustments(addAdjustments.getOrNull()) + fun planVersionNumber(): Optional = + Optional.ofNullable(planVersionNumber.getNullable("plan_version_number")) /** - * Sets [Builder.addAdjustments] to an arbitrary JSON value. + * Optionally provide a list of overrides for prices on the plan * - * You should usually call [Builder.addAdjustments] with a well-typed `List` - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun addAdjustments(addAdjustments: JsonField>) = apply { - body.addAdjustments(addAdjustments) - } + @Deprecated("deprecated") + fun priceOverrides(): Optional> = + Optional.ofNullable(priceOverrides.getNullable("price_overrides")) /** - * Adds a single [AddAdjustment] to [addAdjustments]. + * Plan adjustments to be removed from the subscription. (Only available for accounts that + * have migrated off of legacy subscription overrides) * - * @throws IllegalStateException if the field was previously set to a non-list. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun addAddAdjustment(addAdjustment: AddAdjustment) = apply { - body.addAddAdjustment(addAdjustment) - } + fun removeAdjustments(): Optional> = + Optional.ofNullable(removeAdjustments.getNullable("remove_adjustments")) /** - * Additional prices to be added to the subscription. (Only available for accounts that have + * Plan prices to be removed from the subscription. (Only available for accounts that have * migrated off of legacy subscription overrides) + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun addPrices(addPrices: List?) = apply { body.addPrices(addPrices) } - - /** Alias for calling [Builder.addPrices] with `addPrices.orElse(null)`. */ - fun addPrices(addPrices: Optional>) = addPrices(addPrices.getOrNull()) + fun removePrices(): Optional> = + Optional.ofNullable(removePrices.getNullable("remove_prices")) /** - * Sets [Builder.addPrices] to an arbitrary JSON value. + * Plan adjustments to be replaced with additional adjustments on the subscription. (Only + * available for accounts that have migrated off of legacy subscription overrides) * - * You should usually call [Builder.addPrices] with a well-typed `List` value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun addPrices(addPrices: JsonField>) = apply { body.addPrices(addPrices) } + fun replaceAdjustments(): Optional> = + Optional.ofNullable(replaceAdjustments.getNullable("replace_adjustments")) /** - * Adds a single [AddPrice] to [addPrices]. + * Plan prices to be replaced with additional prices on the subscription. (Only available + * for accounts that have migrated off of legacy subscription overrides) * - * @throws IllegalStateException if the field was previously set to a non-list. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun addAddPrice(addPrice: AddPrice) = apply { body.addAddPrice(addPrice) } + fun replacePrices(): Optional> = + Optional.ofNullable(replacePrices.getNullable("replace_prices")) /** - * [DEPRECATED] Use billing_cycle_alignment instead. Reset billing periods to be aligned - * with the plan change's effective date. + * The duration of the trial period in days. If not provided, this defaults to the value + * specified in the plan. If `0` is provided, the trial on the plan will be skipped. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate: Boolean?) = apply { - body.alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate) - } + fun trialDurationDays(): Optional = + Optional.ofNullable(trialDurationDays.getNullable("trial_duration_days")) /** - * Alias for [Builder.alignBillingWithPlanChangeDate]. + * A list of customer IDs whose usage events will be aggregated and billed under this + * subscription. By default, a subscription only considers usage events associated with its + * attached customer's customer_id. When usage_customer_ids is provided, the subscription + * includes usage events from the specified customers only. Provided usage_customer_ids must + * be either the customer for this subscription itself, or any of that customer's children. * - * This unboxed primitive overload exists for backwards compatibility. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate: Boolean) = - alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate as Boolean?) + fun usageCustomerIds(): Optional> = + Optional.ofNullable(usageCustomerIds.getNullable("usage_customer_ids")) /** - * Alias for calling [Builder.alignBillingWithPlanChangeDate] with - * `alignBillingWithPlanChangeDate.orElse(null)`. + * Returns the raw JSON value of [changeOption]. + * + * Unlike [changeOption], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate: Optional) = - alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate.getOrNull()) + @JsonProperty("change_option") + @ExcludeMissing + fun _changeOption(): JsonField = changeOption /** - * Sets [Builder.alignBillingWithPlanChangeDate] to an arbitrary JSON value. + * Returns the raw JSON value of [addAdjustments]. * - * You should usually call [Builder.alignBillingWithPlanChangeDate] with a well-typed - * [Boolean] value instead. This method is primarily for setting the field to an - * undocumented or not yet supported value. + * Unlike [addAdjustments], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate: JsonField) = - apply { - body.alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate) - } + @JsonProperty("add_adjustments") + @ExcludeMissing + fun _addAdjustments(): JsonField> = addAdjustments /** - * Determines whether issued invoices for this subscription will automatically be charged - * with the saved payment method on the due date. If not specified, this defaults to the - * behavior configured for this customer. + * Returns the raw JSON value of [addPrices]. + * + * Unlike [addPrices], this method doesn't throw if the JSON field has an unexpected type. */ - fun autoCollection(autoCollection: Boolean?) = apply { body.autoCollection(autoCollection) } + @JsonProperty("add_prices") + @ExcludeMissing + fun _addPrices(): JsonField> = addPrices /** - * Alias for [Builder.autoCollection]. + * Returns the raw JSON value of [alignBillingWithPlanChangeDate]. * - * This unboxed primitive overload exists for backwards compatibility. + * Unlike [alignBillingWithPlanChangeDate], this method doesn't throw if the JSON field has + * an unexpected type. */ - fun autoCollection(autoCollection: Boolean) = autoCollection(autoCollection as Boolean?) + @JsonProperty("align_billing_with_plan_change_date") + @ExcludeMissing + fun _alignBillingWithPlanChangeDate(): JsonField = alignBillingWithPlanChangeDate - /** Alias for calling [Builder.autoCollection] with `autoCollection.orElse(null)`. */ - fun autoCollection(autoCollection: Optional) = - autoCollection(autoCollection.getOrNull()) + /** + * Returns the raw JSON value of [autoCollection]. + * + * Unlike [autoCollection], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("auto_collection") + @ExcludeMissing + fun _autoCollection(): JsonField = autoCollection /** - * Sets [Builder.autoCollection] to an arbitrary JSON value. + * Returns the raw JSON value of [billingCycleAlignment]. * - * You should usually call [Builder.autoCollection] with a well-typed [Boolean] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [billingCycleAlignment], this method doesn't throw if the JSON field has an + * unexpected type. */ - fun autoCollection(autoCollection: JsonField) = apply { - body.autoCollection(autoCollection) - } + @JsonProperty("billing_cycle_alignment") + @ExcludeMissing + fun _billingCycleAlignment(): JsonField = billingCycleAlignment /** - * Reset billing periods to be aligned with the plan change's effective date or start of the - * month. Defaults to `unchanged` which keeps subscription's existing billing cycle - * alignment. + * Returns the raw JSON value of [billingCycleAnchorConfiguration]. + * + * Unlike [billingCycleAnchorConfiguration], this method doesn't throw if the JSON field has + * an unexpected type. */ - fun billingCycleAlignment(billingCycleAlignment: BillingCycleAlignment?) = apply { - body.billingCycleAlignment(billingCycleAlignment) - } + @JsonProperty("billing_cycle_anchor_configuration") + @ExcludeMissing + fun _billingCycleAnchorConfiguration(): JsonField = + billingCycleAnchorConfiguration /** - * Alias for calling [Builder.billingCycleAlignment] with - * `billingCycleAlignment.orElse(null)`. + * Returns the raw JSON value of [changeDate]. + * + * Unlike [changeDate], this method doesn't throw if the JSON field has an unexpected type. */ - fun billingCycleAlignment(billingCycleAlignment: Optional) = - billingCycleAlignment(billingCycleAlignment.getOrNull()) + @JsonProperty("change_date") + @ExcludeMissing + fun _changeDate(): JsonField = changeDate /** - * Sets [Builder.billingCycleAlignment] to an arbitrary JSON value. + * Returns the raw JSON value of [couponRedemptionCode]. * - * You should usually call [Builder.billingCycleAlignment] with a well-typed - * [BillingCycleAlignment] value instead. This method is primarily for setting the field to - * an undocumented or not yet supported value. + * Unlike [couponRedemptionCode], this method doesn't throw if the JSON field has an + * unexpected type. */ - fun billingCycleAlignment(billingCycleAlignment: JsonField) = apply { - body.billingCycleAlignment(billingCycleAlignment) - } + @JsonProperty("coupon_redemption_code") + @ExcludeMissing + fun _couponRedemptionCode(): JsonField = couponRedemptionCode - fun billingCycleAnchorConfiguration( - billingCycleAnchorConfiguration: BillingCycleAnchorConfiguration? - ) = apply { body.billingCycleAnchorConfiguration(billingCycleAnchorConfiguration) } + /** + * Returns the raw JSON value of [creditsOverageRate]. + * + * Unlike [creditsOverageRate], this method doesn't throw if the JSON field has an + * unexpected type. + */ + @Deprecated("deprecated") + @JsonProperty("credits_overage_rate") + @ExcludeMissing + fun _creditsOverageRate(): JsonField = creditsOverageRate /** - * Alias for calling [Builder.billingCycleAnchorConfiguration] with - * `billingCycleAnchorConfiguration.orElse(null)`. + * Returns the raw JSON value of [defaultInvoiceMemo]. + * + * Unlike [defaultInvoiceMemo], this method doesn't throw if the JSON field has an + * unexpected type. */ - fun billingCycleAnchorConfiguration( - billingCycleAnchorConfiguration: Optional - ) = billingCycleAnchorConfiguration(billingCycleAnchorConfiguration.getOrNull()) + @JsonProperty("default_invoice_memo") + @ExcludeMissing + fun _defaultInvoiceMemo(): JsonField = defaultInvoiceMemo /** - * Sets [Builder.billingCycleAnchorConfiguration] to an arbitrary JSON value. + * Returns the raw JSON value of [externalPlanId]. * - * You should usually call [Builder.billingCycleAnchorConfiguration] with a well-typed - * [BillingCycleAnchorConfiguration] value instead. This method is primarily for setting the - * field to an undocumented or not yet supported value. + * Unlike [externalPlanId], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun billingCycleAnchorConfiguration( - billingCycleAnchorConfiguration: JsonField - ) = apply { body.billingCycleAnchorConfiguration(billingCycleAnchorConfiguration) } + @JsonProperty("external_plan_id") + @ExcludeMissing + fun _externalPlanId(): JsonField = externalPlanId /** - * The date that the plan change should take effect. This parameter can only be passed if - * the `change_option` is `requested_date`. If a date with no time is passed, the plan - * change will happen at midnight in the customer's timezone. + * Returns the raw JSON value of [filter]. + * + * Unlike [filter], this method doesn't throw if the JSON field has an unexpected type. */ - fun changeDate(changeDate: OffsetDateTime?) = apply { body.changeDate(changeDate) } - - /** Alias for calling [Builder.changeDate] with `changeDate.orElse(null)`. */ - fun changeDate(changeDate: Optional) = changeDate(changeDate.getOrNull()) + @JsonProperty("filter") @ExcludeMissing fun _filter(): JsonField = filter /** - * Sets [Builder.changeDate] to an arbitrary JSON value. + * Returns the raw JSON value of [initialPhaseOrder]. * - * You should usually call [Builder.changeDate] with a well-typed [OffsetDateTime] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [initialPhaseOrder], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun changeDate(changeDate: JsonField) = apply { - body.changeDate(changeDate) - } + @JsonProperty("initial_phase_order") + @ExcludeMissing + fun _initialPhaseOrder(): JsonField = initialPhaseOrder /** - * Redemption code to be used for this subscription. If the coupon cannot be found by its - * redemption code, or cannot be redeemed, an error response will be returned and the - * subscription creation or plan change will not be scheduled. + * Returns the raw JSON value of [invoicingThreshold]. + * + * Unlike [invoicingThreshold], this method doesn't throw if the JSON field has an + * unexpected type. */ - fun couponRedemptionCode(couponRedemptionCode: String?) = apply { - body.couponRedemptionCode(couponRedemptionCode) - } + @JsonProperty("invoicing_threshold") + @ExcludeMissing + fun _invoicingThreshold(): JsonField = invoicingThreshold /** - * Alias for calling [Builder.couponRedemptionCode] with - * `couponRedemptionCode.orElse(null)`. + * Returns the raw JSON value of [netTerms]. + * + * Unlike [netTerms], this method doesn't throw if the JSON field has an unexpected type. */ - fun couponRedemptionCode(couponRedemptionCode: Optional) = - couponRedemptionCode(couponRedemptionCode.getOrNull()) + @JsonProperty("net_terms") @ExcludeMissing fun _netTerms(): JsonField = netTerms /** - * Sets [Builder.couponRedemptionCode] to an arbitrary JSON value. + * Returns the raw JSON value of [perCreditOverageAmount]. * - * You should usually call [Builder.couponRedemptionCode] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [perCreditOverageAmount], this method doesn't throw if the JSON field has an + * unexpected type. */ - fun couponRedemptionCode(couponRedemptionCode: JsonField) = apply { - body.couponRedemptionCode(couponRedemptionCode) - } - @Deprecated("deprecated") - fun creditsOverageRate(creditsOverageRate: Double?) = apply { - body.creditsOverageRate(creditsOverageRate) - } + @JsonProperty("per_credit_overage_amount") + @ExcludeMissing + fun _perCreditOverageAmount(): JsonField = perCreditOverageAmount /** - * Alias for [Builder.creditsOverageRate]. + * Returns the raw JSON value of [planId]. * - * This unboxed primitive overload exists for backwards compatibility. + * Unlike [planId], this method doesn't throw if the JSON field has an unexpected type. */ - @Deprecated("deprecated") - fun creditsOverageRate(creditsOverageRate: Double) = - creditsOverageRate(creditsOverageRate as Double?) + @JsonProperty("plan_id") @ExcludeMissing fun _planId(): JsonField = planId /** - * Alias for calling [Builder.creditsOverageRate] with `creditsOverageRate.orElse(null)`. + * Returns the raw JSON value of [planVersionNumber]. + * + * Unlike [planVersionNumber], this method doesn't throw if the JSON field has an unexpected + * type. */ - @Deprecated("deprecated") - fun creditsOverageRate(creditsOverageRate: Optional) = - creditsOverageRate(creditsOverageRate.getOrNull()) + @JsonProperty("plan_version_number") + @ExcludeMissing + fun _planVersionNumber(): JsonField = planVersionNumber /** - * Sets [Builder.creditsOverageRate] to an arbitrary JSON value. + * Returns the raw JSON value of [priceOverrides]. * - * You should usually call [Builder.creditsOverageRate] with a well-typed [Double] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [priceOverrides], this method doesn't throw if the JSON field has an unexpected + * type. */ @Deprecated("deprecated") - fun creditsOverageRate(creditsOverageRate: JsonField) = apply { - body.creditsOverageRate(creditsOverageRate) - } + @JsonProperty("price_overrides") + @ExcludeMissing + fun _priceOverrides(): JsonField> = priceOverrides /** - * Determines the default memo on this subscription's invoices. Note that if this is not - * provided, it is determined by the plan configuration. + * Returns the raw JSON value of [removeAdjustments]. + * + * Unlike [removeAdjustments], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun defaultInvoiceMemo(defaultInvoiceMemo: String?) = apply { - body.defaultInvoiceMemo(defaultInvoiceMemo) - } + @JsonProperty("remove_adjustments") + @ExcludeMissing + fun _removeAdjustments(): JsonField> = removeAdjustments /** - * Alias for calling [Builder.defaultInvoiceMemo] with `defaultInvoiceMemo.orElse(null)`. + * Returns the raw JSON value of [removePrices]. + * + * Unlike [removePrices], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun defaultInvoiceMemo(defaultInvoiceMemo: Optional) = - defaultInvoiceMemo(defaultInvoiceMemo.getOrNull()) + @JsonProperty("remove_prices") + @ExcludeMissing + fun _removePrices(): JsonField> = removePrices /** - * Sets [Builder.defaultInvoiceMemo] to an arbitrary JSON value. + * Returns the raw JSON value of [replaceAdjustments]. * - * You should usually call [Builder.defaultInvoiceMemo] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [replaceAdjustments], this method doesn't throw if the JSON field has an + * unexpected type. */ - fun defaultInvoiceMemo(defaultInvoiceMemo: JsonField) = apply { - body.defaultInvoiceMemo(defaultInvoiceMemo) - } + @JsonProperty("replace_adjustments") + @ExcludeMissing + fun _replaceAdjustments(): JsonField> = replaceAdjustments /** - * The external_plan_id of the plan that the given subscription should be switched to. Note - * that either this property or `plan_id` must be specified. + * Returns the raw JSON value of [replacePrices]. + * + * Unlike [replacePrices], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun externalPlanId(externalPlanId: String?) = apply { body.externalPlanId(externalPlanId) } - - /** Alias for calling [Builder.externalPlanId] with `externalPlanId.orElse(null)`. */ - fun externalPlanId(externalPlanId: Optional) = - externalPlanId(externalPlanId.getOrNull()) + @JsonProperty("replace_prices") + @ExcludeMissing + fun _replacePrices(): JsonField> = replacePrices /** - * Sets [Builder.externalPlanId] to an arbitrary JSON value. + * Returns the raw JSON value of [trialDurationDays]. * - * You should usually call [Builder.externalPlanId] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * Unlike [trialDurationDays], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun externalPlanId(externalPlanId: JsonField) = apply { - body.externalPlanId(externalPlanId) - } + @JsonProperty("trial_duration_days") + @ExcludeMissing + fun _trialDurationDays(): JsonField = trialDurationDays /** - * An additional filter to apply to usage queries. This filter must be expressed as a - * boolean [computed property](/extensibility/advanced-metrics#computed-properties). If - * null, usage queries will not include any additional filter. + * Returns the raw JSON value of [usageCustomerIds]. + * + * Unlike [usageCustomerIds], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun filter(filter: String?) = apply { body.filter(filter) } + @JsonProperty("usage_customer_ids") + @ExcludeMissing + fun _usageCustomerIds(): JsonField> = usageCustomerIds - /** Alias for calling [Builder.filter] with `filter.orElse(null)`. */ - fun filter(filter: Optional) = filter(filter.getOrNull()) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } - /** - * Sets [Builder.filter] to an arbitrary JSON value. - * - * You should usually call [Builder.filter] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun filter(filter: JsonField) = apply { body.filter(filter) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) - /** The phase of the plan to start with */ - fun initialPhaseOrder(initialPhaseOrder: Long?) = apply { - body.initialPhaseOrder(initialPhaseOrder) + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .changeOption() + * ``` + */ + @JvmStatic fun builder() = Builder() } - /** - * Alias for [Builder.initialPhaseOrder]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun initialPhaseOrder(initialPhaseOrder: Long) = - initialPhaseOrder(initialPhaseOrder as Long?) + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var changeOption: JsonField? = null + private var addAdjustments: JsonField>? = null + private var addPrices: JsonField>? = null + private var alignBillingWithPlanChangeDate: JsonField = JsonMissing.of() + private var autoCollection: JsonField = JsonMissing.of() + private var billingCycleAlignment: JsonField = JsonMissing.of() + private var billingCycleAnchorConfiguration: + JsonField = + JsonMissing.of() + private var changeDate: JsonField = JsonMissing.of() + private var couponRedemptionCode: JsonField = JsonMissing.of() + private var creditsOverageRate: JsonField = JsonMissing.of() + private var defaultInvoiceMemo: JsonField = JsonMissing.of() + private var externalPlanId: JsonField = JsonMissing.of() + private var filter: JsonField = JsonMissing.of() + private var initialPhaseOrder: JsonField = JsonMissing.of() + private var invoicingThreshold: JsonField = JsonMissing.of() + private var netTerms: JsonField = JsonMissing.of() + private var perCreditOverageAmount: JsonField = JsonMissing.of() + private var planId: JsonField = JsonMissing.of() + private var planVersionNumber: JsonField = JsonMissing.of() + private var priceOverrides: JsonField>? = null + private var removeAdjustments: JsonField>? = null + private var removePrices: JsonField>? = null + private var replaceAdjustments: JsonField>? = null + private var replacePrices: JsonField>? = null + private var trialDurationDays: JsonField = JsonMissing.of() + private var usageCustomerIds: JsonField>? = null + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + changeOption = body.changeOption + addAdjustments = body.addAdjustments.map { it.toMutableList() } + addPrices = body.addPrices.map { it.toMutableList() } + alignBillingWithPlanChangeDate = body.alignBillingWithPlanChangeDate + autoCollection = body.autoCollection + billingCycleAlignment = body.billingCycleAlignment + billingCycleAnchorConfiguration = body.billingCycleAnchorConfiguration + changeDate = body.changeDate + couponRedemptionCode = body.couponRedemptionCode + creditsOverageRate = body.creditsOverageRate + defaultInvoiceMemo = body.defaultInvoiceMemo + externalPlanId = body.externalPlanId + filter = body.filter + initialPhaseOrder = body.initialPhaseOrder + invoicingThreshold = body.invoicingThreshold + netTerms = body.netTerms + perCreditOverageAmount = body.perCreditOverageAmount + planId = body.planId + planVersionNumber = body.planVersionNumber + priceOverrides = body.priceOverrides.map { it.toMutableList() } + removeAdjustments = body.removeAdjustments.map { it.toMutableList() } + removePrices = body.removePrices.map { it.toMutableList() } + replaceAdjustments = body.replaceAdjustments.map { it.toMutableList() } + replacePrices = body.replacePrices.map { it.toMutableList() } + trialDurationDays = body.trialDurationDays + usageCustomerIds = body.usageCustomerIds.map { it.toMutableList() } + additionalProperties = body.additionalProperties.toMutableMap() + } + + fun changeOption(changeOption: ChangeOption) = changeOption(JsonField.of(changeOption)) + + /** + * Sets [Builder.changeOption] to an arbitrary JSON value. + * + * You should usually call [Builder.changeOption] with a well-typed [ChangeOption] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun changeOption(changeOption: JsonField) = apply { + this.changeOption = changeOption + } + + /** + * Additional adjustments to be added to the subscription. (Only available for accounts + * that have migrated off of legacy subscription overrides) + */ + fun addAdjustments(addAdjustments: List?) = + addAdjustments(JsonField.ofNullable(addAdjustments)) + + /** Alias for calling [Builder.addAdjustments] with `addAdjustments.orElse(null)`. */ + fun addAdjustments(addAdjustments: Optional>) = + addAdjustments(addAdjustments.getOrNull()) + + /** + * Sets [Builder.addAdjustments] to an arbitrary JSON value. + * + * You should usually call [Builder.addAdjustments] with a well-typed + * `List` value instead. This method is primarily for setting the field + * to an undocumented or not yet supported value. + */ + fun addAdjustments(addAdjustments: JsonField>) = apply { + this.addAdjustments = addAdjustments.map { it.toMutableList() } + } + + /** + * Adds a single [AddAdjustment] to [addAdjustments]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addAddAdjustment(addAdjustment: AddAdjustment) = apply { + addAdjustments = + (addAdjustments ?: JsonField.of(mutableListOf())).also { + checkKnown("addAdjustments", it).add(addAdjustment) + } + } + + /** + * Additional prices to be added to the subscription. (Only available for accounts that + * have migrated off of legacy subscription overrides) + */ + fun addPrices(addPrices: List?) = addPrices(JsonField.ofNullable(addPrices)) + + /** Alias for calling [Builder.addPrices] with `addPrices.orElse(null)`. */ + fun addPrices(addPrices: Optional>) = addPrices(addPrices.getOrNull()) + + /** + * Sets [Builder.addPrices] to an arbitrary JSON value. + * + * You should usually call [Builder.addPrices] with a well-typed `List` value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun addPrices(addPrices: JsonField>) = apply { + this.addPrices = addPrices.map { it.toMutableList() } + } + + /** + * Adds a single [AddPrice] to [addPrices]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addAddPrice(addPrice: AddPrice) = apply { + addPrices = + (addPrices ?: JsonField.of(mutableListOf())).also { + checkKnown("addPrices", it).add(addPrice) + } + } + + /** + * [DEPRECATED] Use billing_cycle_alignment instead. Reset billing periods to be aligned + * with the plan change's effective date. + */ + fun alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate: Boolean?) = + alignBillingWithPlanChangeDate(JsonField.ofNullable(alignBillingWithPlanChangeDate)) + + /** + * Alias for [Builder.alignBillingWithPlanChangeDate]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate: Boolean) = + alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate as Boolean?) + + /** + * Alias for calling [Builder.alignBillingWithPlanChangeDate] with + * `alignBillingWithPlanChangeDate.orElse(null)`. + */ + fun alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate: Optional) = + alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate.getOrNull()) + + /** + * Sets [Builder.alignBillingWithPlanChangeDate] to an arbitrary JSON value. + * + * You should usually call [Builder.alignBillingWithPlanChangeDate] with a well-typed + * [Boolean] value instead. This method is primarily for setting the field to an + * undocumented or not yet supported value. + */ + fun alignBillingWithPlanChangeDate(alignBillingWithPlanChangeDate: JsonField) = + apply { + this.alignBillingWithPlanChangeDate = alignBillingWithPlanChangeDate + } + + /** + * Determines whether issued invoices for this subscription will automatically be + * charged with the saved payment method on the due date. If not specified, this + * defaults to the behavior configured for this customer. + */ + fun autoCollection(autoCollection: Boolean?) = + autoCollection(JsonField.ofNullable(autoCollection)) + + /** + * Alias for [Builder.autoCollection]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun autoCollection(autoCollection: Boolean) = autoCollection(autoCollection as Boolean?) + + /** Alias for calling [Builder.autoCollection] with `autoCollection.orElse(null)`. */ + fun autoCollection(autoCollection: Optional) = + autoCollection(autoCollection.getOrNull()) + + /** + * Sets [Builder.autoCollection] to an arbitrary JSON value. + * + * You should usually call [Builder.autoCollection] with a well-typed [Boolean] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun autoCollection(autoCollection: JsonField) = apply { + this.autoCollection = autoCollection + } + + /** + * Reset billing periods to be aligned with the plan change's effective date or start of + * the month. Defaults to `unchanged` which keeps subscription's existing billing cycle + * alignment. + */ + fun billingCycleAlignment(billingCycleAlignment: BillingCycleAlignment?) = + billingCycleAlignment(JsonField.ofNullable(billingCycleAlignment)) + + /** + * Alias for calling [Builder.billingCycleAlignment] with + * `billingCycleAlignment.orElse(null)`. + */ + fun billingCycleAlignment(billingCycleAlignment: Optional) = + billingCycleAlignment(billingCycleAlignment.getOrNull()) + + /** + * Sets [Builder.billingCycleAlignment] to an arbitrary JSON value. + * + * You should usually call [Builder.billingCycleAlignment] with a well-typed + * [BillingCycleAlignment] value instead. This method is primarily for setting the field + * to an undocumented or not yet supported value. + */ + fun billingCycleAlignment(billingCycleAlignment: JsonField) = + apply { + this.billingCycleAlignment = billingCycleAlignment + } + + fun billingCycleAnchorConfiguration( + billingCycleAnchorConfiguration: BillingCycleAnchorConfiguration? + ) = + billingCycleAnchorConfiguration( + JsonField.ofNullable(billingCycleAnchorConfiguration) + ) + + /** + * Alias for calling [Builder.billingCycleAnchorConfiguration] with + * `billingCycleAnchorConfiguration.orElse(null)`. + */ + fun billingCycleAnchorConfiguration( + billingCycleAnchorConfiguration: Optional + ) = billingCycleAnchorConfiguration(billingCycleAnchorConfiguration.getOrNull()) + + /** + * Sets [Builder.billingCycleAnchorConfiguration] to an arbitrary JSON value. + * + * You should usually call [Builder.billingCycleAnchorConfiguration] with a well-typed + * [BillingCycleAnchorConfiguration] value instead. This method is primarily for setting + * the field to an undocumented or not yet supported value. + */ + fun billingCycleAnchorConfiguration( + billingCycleAnchorConfiguration: JsonField + ) = apply { this.billingCycleAnchorConfiguration = billingCycleAnchorConfiguration } + + /** + * The date that the plan change should take effect. This parameter can only be passed + * if the `change_option` is `requested_date`. If a date with no time is passed, the + * plan change will happen at midnight in the customer's timezone. + */ + fun changeDate(changeDate: OffsetDateTime?) = + changeDate(JsonField.ofNullable(changeDate)) + + /** Alias for calling [Builder.changeDate] with `changeDate.orElse(null)`. */ + fun changeDate(changeDate: Optional) = + changeDate(changeDate.getOrNull()) + + /** + * Sets [Builder.changeDate] to an arbitrary JSON value. + * + * You should usually call [Builder.changeDate] with a well-typed [OffsetDateTime] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun changeDate(changeDate: JsonField) = apply { + this.changeDate = changeDate + } + + /** + * Redemption code to be used for this subscription. If the coupon cannot be found by + * its redemption code, or cannot be redeemed, an error response will be returned and + * the subscription creation or plan change will not be scheduled. + */ + fun couponRedemptionCode(couponRedemptionCode: String?) = + couponRedemptionCode(JsonField.ofNullable(couponRedemptionCode)) + + /** + * Alias for calling [Builder.couponRedemptionCode] with + * `couponRedemptionCode.orElse(null)`. + */ + fun couponRedemptionCode(couponRedemptionCode: Optional) = + couponRedemptionCode(couponRedemptionCode.getOrNull()) - /** Alias for calling [Builder.initialPhaseOrder] with `initialPhaseOrder.orElse(null)`. */ - fun initialPhaseOrder(initialPhaseOrder: Optional) = - initialPhaseOrder(initialPhaseOrder.getOrNull()) + /** + * Sets [Builder.couponRedemptionCode] to an arbitrary JSON value. + * + * You should usually call [Builder.couponRedemptionCode] with a well-typed [String] + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + fun couponRedemptionCode(couponRedemptionCode: JsonField) = apply { + this.couponRedemptionCode = couponRedemptionCode + } - /** - * Sets [Builder.initialPhaseOrder] to an arbitrary JSON value. - * - * You should usually call [Builder.initialPhaseOrder] with a well-typed [Long] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun initialPhaseOrder(initialPhaseOrder: JsonField) = apply { - body.initialPhaseOrder(initialPhaseOrder) - } + @Deprecated("deprecated") + fun creditsOverageRate(creditsOverageRate: Double?) = + creditsOverageRate(JsonField.ofNullable(creditsOverageRate)) - /** - * When this subscription's accrued usage reaches this threshold, an invoice will be issued - * for the subscription. If not specified, invoices will only be issued at the end of the - * billing period. - */ - fun invoicingThreshold(invoicingThreshold: String?) = apply { - body.invoicingThreshold(invoicingThreshold) - } + /** + * Alias for [Builder.creditsOverageRate]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + @Deprecated("deprecated") + fun creditsOverageRate(creditsOverageRate: Double) = + creditsOverageRate(creditsOverageRate as Double?) - /** - * Alias for calling [Builder.invoicingThreshold] with `invoicingThreshold.orElse(null)`. - */ - fun invoicingThreshold(invoicingThreshold: Optional) = - invoicingThreshold(invoicingThreshold.getOrNull()) + /** + * Alias for calling [Builder.creditsOverageRate] with + * `creditsOverageRate.orElse(null)`. + */ + @Deprecated("deprecated") + fun creditsOverageRate(creditsOverageRate: Optional) = + creditsOverageRate(creditsOverageRate.getOrNull()) - /** - * Sets [Builder.invoicingThreshold] to an arbitrary JSON value. - * - * You should usually call [Builder.invoicingThreshold] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun invoicingThreshold(invoicingThreshold: JsonField) = apply { - body.invoicingThreshold(invoicingThreshold) - } + /** + * Sets [Builder.creditsOverageRate] to an arbitrary JSON value. + * + * You should usually call [Builder.creditsOverageRate] with a well-typed [Double] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + @Deprecated("deprecated") + fun creditsOverageRate(creditsOverageRate: JsonField) = apply { + this.creditsOverageRate = creditsOverageRate + } - /** - * The net terms determines the difference between the invoice date and the issue date for - * the invoice. If you intend the invoice to be due on issue, set this to 0. If not - * provided, this defaults to the value specified in the plan. - */ - fun netTerms(netTerms: Long?) = apply { body.netTerms(netTerms) } + /** + * Determines the default memo on this subscription's invoices. Note that if this is not + * provided, it is determined by the plan configuration. + */ + fun defaultInvoiceMemo(defaultInvoiceMemo: String?) = + defaultInvoiceMemo(JsonField.ofNullable(defaultInvoiceMemo)) - /** - * Alias for [Builder.netTerms]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun netTerms(netTerms: Long) = netTerms(netTerms as Long?) + /** + * Alias for calling [Builder.defaultInvoiceMemo] with + * `defaultInvoiceMemo.orElse(null)`. + */ + fun defaultInvoiceMemo(defaultInvoiceMemo: Optional) = + defaultInvoiceMemo(defaultInvoiceMemo.getOrNull()) - /** Alias for calling [Builder.netTerms] with `netTerms.orElse(null)`. */ - fun netTerms(netTerms: Optional) = netTerms(netTerms.getOrNull()) + /** + * Sets [Builder.defaultInvoiceMemo] to an arbitrary JSON value. + * + * You should usually call [Builder.defaultInvoiceMemo] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun defaultInvoiceMemo(defaultInvoiceMemo: JsonField) = apply { + this.defaultInvoiceMemo = defaultInvoiceMemo + } - /** - * Sets [Builder.netTerms] to an arbitrary JSON value. - * - * You should usually call [Builder.netTerms] with a well-typed [Long] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun netTerms(netTerms: JsonField) = apply { body.netTerms(netTerms) } + /** + * The external_plan_id of the plan that the given subscription should be switched to. + * Note that either this property or `plan_id` must be specified. + */ + fun externalPlanId(externalPlanId: String?) = + externalPlanId(JsonField.ofNullable(externalPlanId)) - @Deprecated("deprecated") - fun perCreditOverageAmount(perCreditOverageAmount: Double?) = apply { - body.perCreditOverageAmount(perCreditOverageAmount) - } + /** Alias for calling [Builder.externalPlanId] with `externalPlanId.orElse(null)`. */ + fun externalPlanId(externalPlanId: Optional) = + externalPlanId(externalPlanId.getOrNull()) - /** - * Alias for [Builder.perCreditOverageAmount]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - @Deprecated("deprecated") - fun perCreditOverageAmount(perCreditOverageAmount: Double) = - perCreditOverageAmount(perCreditOverageAmount as Double?) + /** + * Sets [Builder.externalPlanId] to an arbitrary JSON value. + * + * You should usually call [Builder.externalPlanId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun externalPlanId(externalPlanId: JsonField) = apply { + this.externalPlanId = externalPlanId + } - /** - * Alias for calling [Builder.perCreditOverageAmount] with - * `perCreditOverageAmount.orElse(null)`. - */ - @Deprecated("deprecated") - fun perCreditOverageAmount(perCreditOverageAmount: Optional) = - perCreditOverageAmount(perCreditOverageAmount.getOrNull()) + /** + * An additional filter to apply to usage queries. This filter must be expressed as a + * boolean [computed property](/extensibility/advanced-metrics#computed-properties). If + * null, usage queries will not include any additional filter. + */ + fun filter(filter: String?) = filter(JsonField.ofNullable(filter)) - /** - * Sets [Builder.perCreditOverageAmount] to an arbitrary JSON value. - * - * You should usually call [Builder.perCreditOverageAmount] with a well-typed [Double] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - @Deprecated("deprecated") - fun perCreditOverageAmount(perCreditOverageAmount: JsonField) = apply { - body.perCreditOverageAmount(perCreditOverageAmount) - } + /** Alias for calling [Builder.filter] with `filter.orElse(null)`. */ + fun filter(filter: Optional) = filter(filter.getOrNull()) - /** - * The plan that the given subscription should be switched to. Note that either this - * property or `external_plan_id` must be specified. - */ - fun planId(planId: String?) = apply { body.planId(planId) } + /** + * Sets [Builder.filter] to an arbitrary JSON value. + * + * You should usually call [Builder.filter] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun filter(filter: JsonField) = apply { this.filter = filter } - /** Alias for calling [Builder.planId] with `planId.orElse(null)`. */ - fun planId(planId: Optional) = planId(planId.getOrNull()) + /** The phase of the plan to start with */ + fun initialPhaseOrder(initialPhaseOrder: Long?) = + initialPhaseOrder(JsonField.ofNullable(initialPhaseOrder)) - /** - * Sets [Builder.planId] to an arbitrary JSON value. - * - * You should usually call [Builder.planId] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun planId(planId: JsonField) = apply { body.planId(planId) } + /** + * Alias for [Builder.initialPhaseOrder]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun initialPhaseOrder(initialPhaseOrder: Long) = + initialPhaseOrder(initialPhaseOrder as Long?) - /** - * Specifies which version of the plan to change to. If null, the default version will be - * used. - */ - fun planVersionNumber(planVersionNumber: Long?) = apply { - body.planVersionNumber(planVersionNumber) - } + /** + * Alias for calling [Builder.initialPhaseOrder] with `initialPhaseOrder.orElse(null)`. + */ + fun initialPhaseOrder(initialPhaseOrder: Optional) = + initialPhaseOrder(initialPhaseOrder.getOrNull()) - /** - * Alias for [Builder.planVersionNumber]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun planVersionNumber(planVersionNumber: Long) = - planVersionNumber(planVersionNumber as Long?) + /** + * Sets [Builder.initialPhaseOrder] to an arbitrary JSON value. + * + * You should usually call [Builder.initialPhaseOrder] with a well-typed [Long] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun initialPhaseOrder(initialPhaseOrder: JsonField) = apply { + this.initialPhaseOrder = initialPhaseOrder + } - /** Alias for calling [Builder.planVersionNumber] with `planVersionNumber.orElse(null)`. */ - fun planVersionNumber(planVersionNumber: Optional) = - planVersionNumber(planVersionNumber.getOrNull()) + /** + * When this subscription's accrued usage reaches this threshold, an invoice will be + * issued for the subscription. If not specified, invoices will only be issued at the + * end of the billing period. + */ + fun invoicingThreshold(invoicingThreshold: String?) = + invoicingThreshold(JsonField.ofNullable(invoicingThreshold)) - /** - * Sets [Builder.planVersionNumber] to an arbitrary JSON value. - * - * You should usually call [Builder.planVersionNumber] with a well-typed [Long] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun planVersionNumber(planVersionNumber: JsonField) = apply { - body.planVersionNumber(planVersionNumber) - } + /** + * Alias for calling [Builder.invoicingThreshold] with + * `invoicingThreshold.orElse(null)`. + */ + fun invoicingThreshold(invoicingThreshold: Optional) = + invoicingThreshold(invoicingThreshold.getOrNull()) - /** Optionally provide a list of overrides for prices on the plan */ - @Deprecated("deprecated") - fun priceOverrides(priceOverrides: List?) = apply { - body.priceOverrides(priceOverrides) - } + /** + * Sets [Builder.invoicingThreshold] to an arbitrary JSON value. + * + * You should usually call [Builder.invoicingThreshold] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun invoicingThreshold(invoicingThreshold: JsonField) = apply { + this.invoicingThreshold = invoicingThreshold + } - /** Alias for calling [Builder.priceOverrides] with `priceOverrides.orElse(null)`. */ - @Deprecated("deprecated") - fun priceOverrides(priceOverrides: Optional>) = - priceOverrides(priceOverrides.getOrNull()) + /** + * The net terms determines the difference between the invoice date and the issue date + * for the invoice. If you intend the invoice to be due on issue, set this to 0. If not + * provided, this defaults to the value specified in the plan. + */ + fun netTerms(netTerms: Long?) = netTerms(JsonField.ofNullable(netTerms)) - /** - * Sets [Builder.priceOverrides] to an arbitrary JSON value. - * - * You should usually call [Builder.priceOverrides] with a well-typed `List` - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - @Deprecated("deprecated") - fun priceOverrides(priceOverrides: JsonField>) = apply { - body.priceOverrides(priceOverrides) - } + /** + * Alias for [Builder.netTerms]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun netTerms(netTerms: Long) = netTerms(netTerms as Long?) - /** - * Adds a single [JsonValue] to [priceOverrides]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - @Deprecated("deprecated") - fun addPriceOverride(priceOverride: JsonValue) = apply { - body.addPriceOverride(priceOverride) - } + /** Alias for calling [Builder.netTerms] with `netTerms.orElse(null)`. */ + fun netTerms(netTerms: Optional) = netTerms(netTerms.getOrNull()) - /** - * Plan adjustments to be removed from the subscription. (Only available for accounts that - * have migrated off of legacy subscription overrides) - */ - fun removeAdjustments(removeAdjustments: List?) = apply { - body.removeAdjustments(removeAdjustments) - } + /** + * Sets [Builder.netTerms] to an arbitrary JSON value. + * + * You should usually call [Builder.netTerms] with a well-typed [Long] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun netTerms(netTerms: JsonField) = apply { this.netTerms = netTerms } - /** Alias for calling [Builder.removeAdjustments] with `removeAdjustments.orElse(null)`. */ - fun removeAdjustments(removeAdjustments: Optional>) = - removeAdjustments(removeAdjustments.getOrNull()) + @Deprecated("deprecated") + fun perCreditOverageAmount(perCreditOverageAmount: Double?) = + perCreditOverageAmount(JsonField.ofNullable(perCreditOverageAmount)) - /** - * Sets [Builder.removeAdjustments] to an arbitrary JSON value. - * - * You should usually call [Builder.removeAdjustments] with a well-typed - * `List` value instead. This method is primarily for setting the field to - * an undocumented or not yet supported value. - */ - fun removeAdjustments(removeAdjustments: JsonField>) = apply { - body.removeAdjustments(removeAdjustments) - } + /** + * Alias for [Builder.perCreditOverageAmount]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + @Deprecated("deprecated") + fun perCreditOverageAmount(perCreditOverageAmount: Double) = + perCreditOverageAmount(perCreditOverageAmount as Double?) - /** - * Adds a single [RemoveAdjustment] to [removeAdjustments]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addRemoveAdjustment(removeAdjustment: RemoveAdjustment) = apply { - body.addRemoveAdjustment(removeAdjustment) - } + /** + * Alias for calling [Builder.perCreditOverageAmount] with + * `perCreditOverageAmount.orElse(null)`. + */ + @Deprecated("deprecated") + fun perCreditOverageAmount(perCreditOverageAmount: Optional) = + perCreditOverageAmount(perCreditOverageAmount.getOrNull()) - /** - * Plan prices to be removed from the subscription. (Only available for accounts that have - * migrated off of legacy subscription overrides) - */ - fun removePrices(removePrices: List?) = apply { - body.removePrices(removePrices) - } + /** + * Sets [Builder.perCreditOverageAmount] to an arbitrary JSON value. + * + * You should usually call [Builder.perCreditOverageAmount] with a well-typed [Double] + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + @Deprecated("deprecated") + fun perCreditOverageAmount(perCreditOverageAmount: JsonField) = apply { + this.perCreditOverageAmount = perCreditOverageAmount + } - /** Alias for calling [Builder.removePrices] with `removePrices.orElse(null)`. */ - fun removePrices(removePrices: Optional>) = - removePrices(removePrices.getOrNull()) + /** + * The plan that the given subscription should be switched to. Note that either this + * property or `external_plan_id` must be specified. + */ + fun planId(planId: String?) = planId(JsonField.ofNullable(planId)) - /** - * Sets [Builder.removePrices] to an arbitrary JSON value. - * - * You should usually call [Builder.removePrices] with a well-typed `List` - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun removePrices(removePrices: JsonField>) = apply { - body.removePrices(removePrices) - } + /** Alias for calling [Builder.planId] with `planId.orElse(null)`. */ + fun planId(planId: Optional) = planId(planId.getOrNull()) - /** - * Adds a single [RemovePrice] to [removePrices]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addRemovePrice(removePrice: RemovePrice) = apply { body.addRemovePrice(removePrice) } + /** + * Sets [Builder.planId] to an arbitrary JSON value. + * + * You should usually call [Builder.planId] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun planId(planId: JsonField) = apply { this.planId = planId } - /** - * Plan adjustments to be replaced with additional adjustments on the subscription. (Only - * available for accounts that have migrated off of legacy subscription overrides) - */ - fun replaceAdjustments(replaceAdjustments: List?) = apply { - body.replaceAdjustments(replaceAdjustments) - } + /** + * Specifies which version of the plan to change to. If null, the default version will + * be used. + */ + fun planVersionNumber(planVersionNumber: Long?) = + planVersionNumber(JsonField.ofNullable(planVersionNumber)) - /** - * Alias for calling [Builder.replaceAdjustments] with `replaceAdjustments.orElse(null)`. - */ - fun replaceAdjustments(replaceAdjustments: Optional>) = - replaceAdjustments(replaceAdjustments.getOrNull()) + /** + * Alias for [Builder.planVersionNumber]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun planVersionNumber(planVersionNumber: Long) = + planVersionNumber(planVersionNumber as Long?) - /** - * Sets [Builder.replaceAdjustments] to an arbitrary JSON value. - * - * You should usually call [Builder.replaceAdjustments] with a well-typed - * `List` value instead. This method is primarily for setting the field - * to an undocumented or not yet supported value. - */ - fun replaceAdjustments(replaceAdjustments: JsonField>) = apply { - body.replaceAdjustments(replaceAdjustments) - } + /** + * Alias for calling [Builder.planVersionNumber] with `planVersionNumber.orElse(null)`. + */ + fun planVersionNumber(planVersionNumber: Optional) = + planVersionNumber(planVersionNumber.getOrNull()) - /** - * Adds a single [ReplaceAdjustment] to [replaceAdjustments]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addReplaceAdjustment(replaceAdjustment: ReplaceAdjustment) = apply { - body.addReplaceAdjustment(replaceAdjustment) - } + /** + * Sets [Builder.planVersionNumber] to an arbitrary JSON value. + * + * You should usually call [Builder.planVersionNumber] with a well-typed [Long] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun planVersionNumber(planVersionNumber: JsonField) = apply { + this.planVersionNumber = planVersionNumber + } - /** - * Plan prices to be replaced with additional prices on the subscription. (Only available - * for accounts that have migrated off of legacy subscription overrides) - */ - fun replacePrices(replacePrices: List?) = apply { - body.replacePrices(replacePrices) - } + /** Optionally provide a list of overrides for prices on the plan */ + @Deprecated("deprecated") + fun priceOverrides(priceOverrides: List?) = + priceOverrides(JsonField.ofNullable(priceOverrides)) - /** Alias for calling [Builder.replacePrices] with `replacePrices.orElse(null)`. */ - fun replacePrices(replacePrices: Optional>) = - replacePrices(replacePrices.getOrNull()) + /** Alias for calling [Builder.priceOverrides] with `priceOverrides.orElse(null)`. */ + @Deprecated("deprecated") + fun priceOverrides(priceOverrides: Optional>) = + priceOverrides(priceOverrides.getOrNull()) + + /** + * Sets [Builder.priceOverrides] to an arbitrary JSON value. + * + * You should usually call [Builder.priceOverrides] with a well-typed `List` + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + @Deprecated("deprecated") + fun priceOverrides(priceOverrides: JsonField>) = apply { + this.priceOverrides = priceOverrides.map { it.toMutableList() } + } - /** - * Sets [Builder.replacePrices] to an arbitrary JSON value. - * - * You should usually call [Builder.replacePrices] with a well-typed `List` - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun replacePrices(replacePrices: JsonField>) = apply { - body.replacePrices(replacePrices) - } + /** + * Adds a single [JsonValue] to [priceOverrides]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + @Deprecated("deprecated") + fun addPriceOverride(priceOverride: JsonValue) = apply { + priceOverrides = + (priceOverrides ?: JsonField.of(mutableListOf())).also { + checkKnown("priceOverrides", it).add(priceOverride) + } + } - /** - * Adds a single [ReplacePrice] to [replacePrices]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addReplacePrice(replacePrice: ReplacePrice) = apply { - body.addReplacePrice(replacePrice) - } + /** + * Plan adjustments to be removed from the subscription. (Only available for accounts + * that have migrated off of legacy subscription overrides) + */ + fun removeAdjustments(removeAdjustments: List?) = + removeAdjustments(JsonField.ofNullable(removeAdjustments)) - /** - * The duration of the trial period in days. If not provided, this defaults to the value - * specified in the plan. If `0` is provided, the trial on the plan will be skipped. - */ - fun trialDurationDays(trialDurationDays: Long?) = apply { - body.trialDurationDays(trialDurationDays) - } + /** + * Alias for calling [Builder.removeAdjustments] with `removeAdjustments.orElse(null)`. + */ + fun removeAdjustments(removeAdjustments: Optional>) = + removeAdjustments(removeAdjustments.getOrNull()) - /** - * Alias for [Builder.trialDurationDays]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun trialDurationDays(trialDurationDays: Long) = - trialDurationDays(trialDurationDays as Long?) + /** + * Sets [Builder.removeAdjustments] to an arbitrary JSON value. + * + * You should usually call [Builder.removeAdjustments] with a well-typed + * `List` value instead. This method is primarily for setting the + * field to an undocumented or not yet supported value. + */ + fun removeAdjustments(removeAdjustments: JsonField>) = apply { + this.removeAdjustments = removeAdjustments.map { it.toMutableList() } + } - /** Alias for calling [Builder.trialDurationDays] with `trialDurationDays.orElse(null)`. */ - fun trialDurationDays(trialDurationDays: Optional) = - trialDurationDays(trialDurationDays.getOrNull()) + /** + * Adds a single [RemoveAdjustment] to [removeAdjustments]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addRemoveAdjustment(removeAdjustment: RemoveAdjustment) = apply { + removeAdjustments = + (removeAdjustments ?: JsonField.of(mutableListOf())).also { + checkKnown("removeAdjustments", it).add(removeAdjustment) + } + } - /** - * Sets [Builder.trialDurationDays] to an arbitrary JSON value. - * - * You should usually call [Builder.trialDurationDays] with a well-typed [Long] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun trialDurationDays(trialDurationDays: JsonField) = apply { - body.trialDurationDays(trialDurationDays) - } + /** + * Plan prices to be removed from the subscription. (Only available for accounts that + * have migrated off of legacy subscription overrides) + */ + fun removePrices(removePrices: List?) = + removePrices(JsonField.ofNullable(removePrices)) - /** - * A list of customer IDs whose usage events will be aggregated and billed under this - * subscription. By default, a subscription only considers usage events associated with its - * attached customer's customer_id. When usage_customer_ids is provided, the subscription - * includes usage events from the specified customers only. Provided usage_customer_ids must - * be either the customer for this subscription itself, or any of that customer's children. - */ - fun usageCustomerIds(usageCustomerIds: List?) = apply { - body.usageCustomerIds(usageCustomerIds) - } + /** Alias for calling [Builder.removePrices] with `removePrices.orElse(null)`. */ + fun removePrices(removePrices: Optional>) = + removePrices(removePrices.getOrNull()) - /** Alias for calling [Builder.usageCustomerIds] with `usageCustomerIds.orElse(null)`. */ - fun usageCustomerIds(usageCustomerIds: Optional>) = - usageCustomerIds(usageCustomerIds.getOrNull()) + /** + * Sets [Builder.removePrices] to an arbitrary JSON value. + * + * You should usually call [Builder.removePrices] with a well-typed `List` + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + fun removePrices(removePrices: JsonField>) = apply { + this.removePrices = removePrices.map { it.toMutableList() } + } - /** - * Sets [Builder.usageCustomerIds] to an arbitrary JSON value. - * - * You should usually call [Builder.usageCustomerIds] with a well-typed `List` value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun usageCustomerIds(usageCustomerIds: JsonField>) = apply { - body.usageCustomerIds(usageCustomerIds) - } + /** + * Adds a single [RemovePrice] to [removePrices]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addRemovePrice(removePrice: RemovePrice) = apply { + removePrices = + (removePrices ?: JsonField.of(mutableListOf())).also { + checkKnown("removePrices", it).add(removePrice) + } + } - /** - * Adds a single [String] to [usageCustomerIds]. - * - * @throws IllegalStateException if the field was previously set to a non-list. - */ - fun addUsageCustomerId(usageCustomerId: String) = apply { - body.addUsageCustomerId(usageCustomerId) - } + /** + * Plan adjustments to be replaced with additional adjustments on the subscription. + * (Only available for accounts that have migrated off of legacy subscription overrides) + */ + fun replaceAdjustments(replaceAdjustments: List?) = + replaceAdjustments(JsonField.ofNullable(replaceAdjustments)) - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { - body.additionalProperties(additionalBodyProperties) - } + /** + * Alias for calling [Builder.replaceAdjustments] with + * `replaceAdjustments.orElse(null)`. + */ + fun replaceAdjustments(replaceAdjustments: Optional>) = + replaceAdjustments(replaceAdjustments.getOrNull()) - fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - body.putAdditionalProperty(key, value) - } + /** + * Sets [Builder.replaceAdjustments] to an arbitrary JSON value. + * + * You should usually call [Builder.replaceAdjustments] with a well-typed + * `List` value instead. This method is primarily for setting the + * field to an undocumented or not yet supported value. + */ + fun replaceAdjustments(replaceAdjustments: JsonField>) = apply { + this.replaceAdjustments = replaceAdjustments.map { it.toMutableList() } + } - fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = - apply { - body.putAllAdditionalProperties(additionalBodyProperties) + /** + * Adds a single [ReplaceAdjustment] to [replaceAdjustments]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addReplaceAdjustment(replaceAdjustment: ReplaceAdjustment) = apply { + replaceAdjustments = + (replaceAdjustments ?: JsonField.of(mutableListOf())).also { + checkKnown("replaceAdjustments", it).add(replaceAdjustment) + } } - fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + /** + * Plan prices to be replaced with additional prices on the subscription. (Only + * available for accounts that have migrated off of legacy subscription overrides) + */ + fun replacePrices(replacePrices: List?) = + replacePrices(JsonField.ofNullable(replacePrices)) - fun removeAllAdditionalBodyProperties(keys: Set) = apply { - body.removeAllAdditionalProperties(keys) - } + /** Alias for calling [Builder.replacePrices] with `replacePrices.orElse(null)`. */ + fun replacePrices(replacePrices: Optional>) = + replacePrices(replacePrices.getOrNull()) - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** + * Sets [Builder.replacePrices] to an arbitrary JSON value. + * + * You should usually call [Builder.replacePrices] with a well-typed + * `List` value instead. This method is primarily for setting the field to + * an undocumented or not yet supported value. + */ + fun replacePrices(replacePrices: JsonField>) = apply { + this.replacePrices = replacePrices.map { it.toMutableList() } + } - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** + * Adds a single [ReplacePrice] to [replacePrices]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addReplacePrice(replacePrice: ReplacePrice) = apply { + replacePrices = + (replacePrices ?: JsonField.of(mutableListOf())).also { + checkKnown("replacePrices", it).add(replacePrice) + } + } - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } + /** + * The duration of the trial period in days. If not provided, this defaults to the value + * specified in the plan. If `0` is provided, the trial on the plan will be skipped. + */ + fun trialDurationDays(trialDurationDays: Long?) = + trialDurationDays(JsonField.ofNullable(trialDurationDays)) - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } + /** + * Alias for [Builder.trialDurationDays]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun trialDurationDays(trialDurationDays: Long) = + trialDurationDays(trialDurationDays as Long?) - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** + * Alias for calling [Builder.trialDurationDays] with `trialDurationDays.orElse(null)`. + */ + fun trialDurationDays(trialDurationDays: Optional) = + trialDurationDays(trialDurationDays.getOrNull()) - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** + * Sets [Builder.trialDurationDays] to an arbitrary JSON value. + * + * You should usually call [Builder.trialDurationDays] with a well-typed [Long] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun trialDurationDays(trialDurationDays: JsonField) = apply { + this.trialDurationDays = trialDurationDays + } - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } + /** + * A list of customer IDs whose usage events will be aggregated and billed under this + * subscription. By default, a subscription only considers usage events associated with + * its attached customer's customer_id. When usage_customer_ids is provided, the + * subscription includes usage events from the specified customers only. Provided + * usage_customer_ids must be either the customer for this subscription itself, or any + * of that customer's children. + */ + fun usageCustomerIds(usageCustomerIds: List?) = + usageCustomerIds(JsonField.ofNullable(usageCustomerIds)) - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } + /** + * Alias for calling [Builder.usageCustomerIds] with `usageCustomerIds.orElse(null)`. + */ + fun usageCustomerIds(usageCustomerIds: Optional>) = + usageCustomerIds(usageCustomerIds.getOrNull()) - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** + * Sets [Builder.usageCustomerIds] to an arbitrary JSON value. + * + * You should usually call [Builder.usageCustomerIds] with a well-typed `List` + * value instead. This method is primarily for setting the field to an undocumented or + * not yet supported value. + */ + fun usageCustomerIds(usageCustomerIds: JsonField>) = apply { + this.usageCustomerIds = usageCustomerIds.map { it.toMutableList() } + } - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** + * Adds a single [String] to [usageCustomerIds]. + * + * @throws IllegalStateException if the field was previously set to a non-list. + */ + fun addUsageCustomerId(usageCustomerId: String) = apply { + usageCustomerIds = + (usageCustomerIds ?: JsonField.of(mutableListOf())).also { + checkKnown("usageCustomerIds", it).add(usageCustomerId) + } + } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .changeOption() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body( + checkRequired("changeOption", changeOption), + (addAdjustments ?: JsonMissing.of()).map { it.toImmutable() }, + (addPrices ?: JsonMissing.of()).map { it.toImmutable() }, + alignBillingWithPlanChangeDate, + autoCollection, + billingCycleAlignment, + billingCycleAnchorConfiguration, + changeDate, + couponRedemptionCode, + creditsOverageRate, + defaultInvoiceMemo, + externalPlanId, + filter, + initialPhaseOrder, + invoicingThreshold, + netTerms, + perCreditOverageAmount, + planId, + planVersionNumber, + (priceOverrides ?: JsonMissing.of()).map { it.toImmutable() }, + (removeAdjustments ?: JsonMissing.of()).map { it.toImmutable() }, + (removePrices ?: JsonMissing.of()).map { it.toImmutable() }, + (replaceAdjustments ?: JsonMissing.of()).map { it.toImmutable() }, + (replacePrices ?: JsonMissing.of()).map { it.toImmutable() }, + trialDurationDays, + (usageCustomerIds ?: JsonMissing.of()).map { it.toImmutable() }, + additionalProperties.toMutableMap(), + ) } - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } + private var validated: Boolean = false - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) + fun validate(): Body = apply { + if (validated) { + return@apply } - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) + changeOption() + addAdjustments().ifPresent { it.forEach { it.validate() } } + addPrices().ifPresent { it.forEach { it.validate() } } + alignBillingWithPlanChangeDate() + autoCollection() + billingCycleAlignment() + billingCycleAnchorConfiguration().ifPresent { it.validate() } + changeDate() + couponRedemptionCode() + creditsOverageRate() + defaultInvoiceMemo() + externalPlanId() + filter() + initialPhaseOrder() + invoicingThreshold() + netTerms() + perCreditOverageAmount() + planId() + planVersionNumber() + priceOverrides() + removeAdjustments().ifPresent { it.forEach { it.validate() } } + removePrices().ifPresent { it.forEach { it.validate() } } + replaceAdjustments().ifPresent { it.forEach { it.validate() } } + replacePrices().ifPresent { it.forEach { it.validate() } } + trialDurationDays() + usageCustomerIds() + validated = true } - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + return /* spotless:off */ other is Body && changeOption == other.changeOption && addAdjustments == other.addAdjustments && addPrices == other.addPrices && alignBillingWithPlanChangeDate == other.alignBillingWithPlanChangeDate && autoCollection == other.autoCollection && billingCycleAlignment == other.billingCycleAlignment && billingCycleAnchorConfiguration == other.billingCycleAnchorConfiguration && changeDate == other.changeDate && couponRedemptionCode == other.couponRedemptionCode && creditsOverageRate == other.creditsOverageRate && defaultInvoiceMemo == other.defaultInvoiceMemo && externalPlanId == other.externalPlanId && filter == other.filter && initialPhaseOrder == other.initialPhaseOrder && invoicingThreshold == other.invoicingThreshold && netTerms == other.netTerms && perCreditOverageAmount == other.perCreditOverageAmount && planId == other.planId && planVersionNumber == other.planVersionNumber && priceOverrides == other.priceOverrides && removeAdjustments == other.removeAdjustments && removePrices == other.removePrices && replaceAdjustments == other.replaceAdjustments && replacePrices == other.replacePrices && trialDurationDays == other.trialDurationDays && usageCustomerIds == other.usageCustomerIds && additionalProperties == other.additionalProperties /* spotless:on */ } - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(changeOption, addAdjustments, addPrices, alignBillingWithPlanChangeDate, autoCollection, billingCycleAlignment, billingCycleAnchorConfiguration, changeDate, couponRedemptionCode, creditsOverageRate, defaultInvoiceMemo, externalPlanId, filter, initialPhaseOrder, invoicingThreshold, netTerms, perCreditOverageAmount, planId, planVersionNumber, priceOverrides, removeAdjustments, removePrices, replaceAdjustments, replacePrices, trialDurationDays, usageCustomerIds, additionalProperties) } + /* spotless:on */ - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) - } + override fun hashCode(): Int = hashCode - /** - * Returns an immutable instance of [SubscriptionSchedulePlanChangeParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .subscriptionId() - * .changeOption() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): SubscriptionSchedulePlanChangeParams = - SubscriptionSchedulePlanChangeParams( - checkRequired("subscriptionId", subscriptionId), - body.build(), - additionalHeaders.build(), - additionalQueryParams.build(), - ) + override fun toString() = + "Body{changeOption=$changeOption, addAdjustments=$addAdjustments, addPrices=$addPrices, alignBillingWithPlanChangeDate=$alignBillingWithPlanChangeDate, autoCollection=$autoCollection, billingCycleAlignment=$billingCycleAlignment, billingCycleAnchorConfiguration=$billingCycleAnchorConfiguration, changeDate=$changeDate, couponRedemptionCode=$couponRedemptionCode, creditsOverageRate=$creditsOverageRate, defaultInvoiceMemo=$defaultInvoiceMemo, externalPlanId=$externalPlanId, filter=$filter, initialPhaseOrder=$initialPhaseOrder, invoicingThreshold=$invoicingThreshold, netTerms=$netTerms, perCreditOverageAmount=$perCreditOverageAmount, planId=$planId, planVersionNumber=$planVersionNumber, priceOverrides=$priceOverrides, removeAdjustments=$removeAdjustments, removePrices=$removePrices, replaceAdjustments=$replaceAdjustments, replacePrices=$replacePrices, trialDurationDays=$trialDurationDays, usageCustomerIds=$usageCustomerIds, additionalProperties=$additionalProperties}" } class ChangeOption @JsonCreator private constructor(private val value: JsonField) : @@ -3211,26 +3264,31 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class AddAdjustment - @JsonCreator private constructor( - @JsonProperty("adjustment") - @ExcludeMissing - private val adjustment: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustment: JsonField, + private val endDate: JsonField, + private val planPhaseOrder: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment") + @ExcludeMissing + adjustment: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(adjustment, endDate, planPhaseOrder, startDate, mutableMapOf()) + /** * The definition of a new adjustment to create and add to the subscription. * @@ -3306,23 +3364,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AddAdjustment = apply { - if (validated) { - return@apply - } - - adjustment().validate() - endDate() - planPhaseOrder() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3502,10 +3552,24 @@ private constructor( endDate, planPhaseOrder, startDate, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AddAdjustment = apply { + if (validated) { + return@apply + } + + adjustment().validate() + endDate() + planPhaseOrder() + startDate() + validated = true + } + /** The definition of a new adjustment to create and add to the subscription. */ @JsonDeserialize(using = Adjustment.Deserializer::class) @JsonSerialize(using = Adjustment.Serializer::class) @@ -3750,26 +3814,37 @@ private constructor( } } - @NoAutoDetect class NewPercentageDiscount - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val percentageDiscount: JsonField, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + appliesToPriceIds, + percentageDiscount, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3845,23 +3920,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPercentageDiscount = apply { - if (validated) { - return@apply - } - - adjustmentType() - appliesToPriceIds() - percentageDiscount() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4018,10 +4085,24 @@ private constructor( }, checkRequired("percentageDiscount", percentageDiscount), isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPercentageDiscount = apply { + if (validated) { + return@apply + } + + adjustmentType() + appliesToPriceIds() + percentageDiscount() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4142,26 +4223,37 @@ private constructor( "NewPercentageDiscount{adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, percentageDiscount=$percentageDiscount, isInvoiceLevel=$isInvoiceLevel, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewUsageDiscount - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val usageDiscount: JsonField, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + appliesToPriceIds, + usageDiscount, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4236,23 +4328,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewUsageDiscount = apply { - if (validated) { - return@apply - } - - adjustmentType() - appliesToPriceIds() - usageDiscount() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4407,10 +4491,24 @@ private constructor( }, checkRequired("usageDiscount", usageDiscount), isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewUsageDiscount = apply { + if (validated) { + return@apply + } + + adjustmentType() + appliesToPriceIds() + usageDiscount() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4531,26 +4629,37 @@ private constructor( "NewUsageDiscount{adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, usageDiscount=$usageDiscount, isInvoiceLevel=$isInvoiceLevel, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewAmountDiscount - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + amountDiscount, + appliesToPriceIds, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4625,23 +4734,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewAmountDiscount = apply { - if (validated) { - return@apply - } - - adjustmentType() - amountDiscount() - appliesToPriceIds() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4797,10 +4898,24 @@ private constructor( it.toImmutable() }, isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewAmountDiscount = apply { + if (validated) { + return@apply + } + + adjustmentType() + amountDiscount() + appliesToPriceIds() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4921,29 +5036,42 @@ private constructor( "NewAmountDiscount{adjustmentType=$adjustmentType, amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewMinimum - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val itemId: JsonField, + private val minimumAmount: JsonField, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + appliesToPriceIds, + itemId, + minimumAmount, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -5035,24 +5163,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewMinimum = apply { - if (validated) { - return@apply - } - - adjustmentType() - appliesToPriceIds() - itemId() - minimumAmount() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5223,10 +5342,25 @@ private constructor( checkRequired("itemId", itemId), checkRequired("minimumAmount", minimumAmount), isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewMinimum = apply { + if (validated) { + return@apply + } + + adjustmentType() + appliesToPriceIds() + itemId() + minimumAmount() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -5347,26 +5481,37 @@ private constructor( "NewMinimum{adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, itemId=$itemId, minimumAmount=$minimumAmount, isInvoiceLevel=$isInvoiceLevel, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewMaximum - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + appliesToPriceIds, + maximumAmount, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -5441,23 +5586,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewMaximum = apply { - if (validated) { - return@apply - } - - adjustmentType() - appliesToPriceIds() - maximumAmount() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5611,10 +5748,24 @@ private constructor( }, checkRequired("maximumAmount", maximumAmount), isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewMaximum = apply { + if (validated) { + return@apply + } + + adjustmentType() + appliesToPriceIds() + maximumAmount() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -5754,44 +5905,63 @@ private constructor( "AddAdjustment{adjustment=$adjustment, endDate=$endDate, planPhaseOrder=$planPhaseOrder, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class AddPrice - @JsonCreator private constructor( - @JsonProperty("allocation_price") - @ExcludeMissing - private val allocationPrice: JsonField = JsonMissing.of(), - @JsonProperty("discounts") - @ExcludeMissing - private val discounts: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("price") - @ExcludeMissing - private val price: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val allocationPrice: JsonField, + private val discounts: JsonField>, + private val endDate: JsonField, + private val externalPriceId: JsonField, + private val maximumAmount: JsonField, + private val minimumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val price: JsonField, + private val priceId: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("allocation_price") + @ExcludeMissing + allocationPrice: JsonField = JsonMissing.of(), + @JsonProperty("discounts") + @ExcludeMissing + discounts: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + allocationPrice, + discounts, + endDate, + externalPriceId, + maximumAmount, + minimumAmount, + planPhaseOrder, + price, + priceId, + startDate, + mutableMapOf(), + ) + /** * The definition of a new allocation price to create and add to the subscription. * @@ -5981,29 +6151,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AddPrice = apply { - if (validated) { - return@apply - } - - allocationPrice().ifPresent { it.validate() } - discounts().ifPresent { it.forEach { it.validate() } } - endDate() - externalPriceId() - maximumAmount() - minimumAmount() - planPhaseOrder() - price().ifPresent { it.validate() } - priceId() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6537,31 +6693,56 @@ private constructor( price, priceId, startDate, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AddPrice = apply { + if (validated) { + return@apply + } + + allocationPrice().ifPresent { it.validate() } + discounts().ifPresent { it.forEach { it.validate() } } + endDate() + externalPriceId() + maximumAmount() + minimumAmount() + planPhaseOrder() + price().ifPresent { it.validate() } + priceId() + startDate() + validated = true + } + /** The definition of a new allocation price to create and add to the subscription. */ - @NoAutoDetect class AllocationPrice - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("expires_at_end_of_cadence") - @ExcludeMissing - private val expiresAtEndOfCadence: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val cadence: JsonField, + private val currency: JsonField, + private val expiresAtEndOfCadence: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("expires_at_end_of_cadence") + @ExcludeMissing + expiresAtEndOfCadence: JsonField = JsonMissing.of(), + ) : this(amount, cadence, currency, expiresAtEndOfCadence, mutableMapOf()) + /** * An amount of the currency to allocate to the customer at the specified cadence. * @@ -6633,23 +6814,15 @@ private constructor( @ExcludeMissing fun _expiresAtEndOfCadence(): JsonField = expiresAtEndOfCadence + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AllocationPrice = apply { - if (validated) { - return@apply - } - - amount() - cadence() - currency() - expiresAtEndOfCadence() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6789,10 +6962,24 @@ private constructor( checkRequired("cadence", cadence), checkRequired("currency", currency), checkRequired("expiresAtEndOfCadence", expiresAtEndOfCadence), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AllocationPrice = apply { + if (validated) { + return@apply + } + + amount() + cadence() + currency() + expiresAtEndOfCadence() + validated = true + } + /** The cadence at which to allocate the amount to the customer. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6940,26 +7127,37 @@ private constructor( "AllocationPrice{amount=$amount, cadence=$cadence, currency=$currency, expiresAtEndOfCadence=$expiresAtEndOfCadence, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Discount - @JsonCreator private constructor( - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val discountType: JsonField, + private val amountDiscount: JsonField, + private val percentageDiscount: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + discountType, + amountDiscount, + percentageDiscount, + usageDiscount, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -7035,23 +7233,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Discount = apply { - if (validated) { - return@apply - } - - discountType() - amountDiscount() - percentageDiscount() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7223,10 +7413,24 @@ private constructor( amountDiscount, percentageDiscount, usageDiscount, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Discount = apply { + if (validated) { + return@apply + } + + discountType() + amountDiscount() + percentageDiscount() + usageDiscount() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -8646,64 +8850,99 @@ private constructor( } } - @NoAutoDetect class NewSubscriptionUnitPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("unit_config") - @ExcludeMissing - private val unitConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val unitConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("unit_config") + @ExcludeMissing + unitConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + unitConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -9015,35 +9254,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionUnitPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - unitConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9515,10 +9734,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionUnitPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + unitConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -9751,17 +9996,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitConfig - @JsonCreator private constructor( - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of() + ) : this(unitAmount, mutableMapOf()) + /** * Rate per unit of usage * @@ -9781,20 +10028,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitConfig = apply { - if (validated) { - return@apply - } - - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9875,10 +10117,21 @@ private constructor( fun build(): UnitConfig = UnitConfig( checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UnitConfig = apply { + if (validated) { + return@apply + } + + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -9901,20 +10154,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -9953,21 +10209,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10069,10 +10319,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -10205,20 +10467,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -10257,21 +10522,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -10374,10 +10633,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -10511,28 +10782,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -10579,7 +10845,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -10617,64 +10893,99 @@ private constructor( "NewSubscriptionUnitPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, unitConfig=$unitConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("package_config") - @ExcludeMissing - private val packageConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val packageConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("package_config") + @ExcludeMissing + packageConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + packageConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -10986,35 +11297,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - packageConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -11488,10 +11779,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + packageConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -11724,20 +12041,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class PackageConfig - @JsonCreator private constructor( - @JsonProperty("package_amount") - @ExcludeMissing - private val packageAmount: JsonField = JsonMissing.of(), - @JsonProperty("package_size") - @ExcludeMissing - private val packageSize: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val packageAmount: JsonField, + private val packageSize: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("package_amount") + @ExcludeMissing + packageAmount: JsonField = JsonMissing.of(), + @JsonProperty("package_size") + @ExcludeMissing + packageSize: JsonField = JsonMissing.of(), + ) : this(packageAmount, packageSize, mutableMapOf()) + /** * A currency amount to rate usage by * @@ -11777,21 +12097,15 @@ private constructor( @ExcludeMissing fun _packageSize(): JsonField = packageSize + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PackageConfig = apply { - if (validated) { - return@apply - } - - packageAmount() - packageSize() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -11896,10 +12210,22 @@ private constructor( PackageConfig( checkRequired("packageAmount", packageAmount), checkRequired("packageSize", packageSize), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PackageConfig = apply { + if (validated) { + return@apply + } + + packageAmount() + packageSize() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -11922,20 +12248,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -11974,21 +12303,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12090,10 +12413,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -12226,20 +12561,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -12278,21 +12616,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -12395,10 +12727,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -12532,28 +12876,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -12600,7 +12939,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -12638,64 +12987,99 @@ private constructor( "NewSubscriptionPackagePrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, packageConfig=$packageConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionMatrixPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("matrix_config") - @ExcludeMissing - private val matrixConfig: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val matrixConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("matrix_config") + @ExcludeMissing + matrixConfig: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + matrixConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -13007,35 +13391,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionMatrixPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - matrixConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13509,10 +13873,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionMatrixPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + matrixConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -13644,23 +14034,27 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MatrixConfig - @JsonCreator private constructor( - @JsonProperty("default_unit_amount") - @ExcludeMissing - private val defaultUnitAmount: JsonField = JsonMissing.of(), - @JsonProperty("dimensions") - @ExcludeMissing - private val dimensions: JsonField> = JsonMissing.of(), - @JsonProperty("matrix_values") - @ExcludeMissing - private val matrixValues: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val defaultUnitAmount: JsonField, + private val dimensions: JsonField>, + private val matrixValues: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("default_unit_amount") + @ExcludeMissing + defaultUnitAmount: JsonField = JsonMissing.of(), + @JsonProperty("dimensions") + @ExcludeMissing + dimensions: JsonField> = JsonMissing.of(), + @JsonProperty("matrix_values") + @ExcludeMissing + matrixValues: JsonField> = JsonMissing.of(), + ) : this(defaultUnitAmount, dimensions, matrixValues, mutableMapOf()) + /** * Default per unit rate for any usage not bucketed into a specified * matrix_value @@ -13721,22 +14115,15 @@ private constructor( @ExcludeMissing fun _matrixValues(): JsonField> = matrixValues + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixConfig = apply { - if (validated) { - return@apply - } - - defaultUnitAmount() - dimensions() - matrixValues().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -13889,25 +14276,40 @@ private constructor( checkRequired("matrixValues", matrixValues).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): MatrixConfig = apply { + if (validated) { + return@apply + } + + defaultUnitAmount() + dimensions() + matrixValues().forEach { it.validate() } + validated = true + } + class MatrixValue - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + ) : this(dimensionValues, unitAmount, mutableMapOf()) + /** * One or two matrix keys to filter usage to this Matrix value by. For * example, ["region", "tier"] could be used to filter cloud usage by a @@ -13949,21 +14351,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixValue = apply { - if (validated) { - return@apply - } - - dimensionValues() - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -14088,10 +14484,22 @@ private constructor( it.toImmutable() }, checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MatrixValue = apply { + if (validated) { + return@apply + } + + dimensionValues() + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -14233,20 +14641,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -14285,21 +14696,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -14401,10 +14806,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -14537,20 +14954,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -14589,21 +15009,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -14706,10 +15120,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -14843,28 +15269,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -14911,7 +15332,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -14949,64 +15380,99 @@ private constructor( "NewSubscriptionMatrixPrice{cadence=$cadence, itemId=$itemId, matrixConfig=$matrixConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionTieredPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_config") - @ExcludeMissing - private val tieredConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_config") + @ExcludeMissing + tieredConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -15318,35 +15784,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionTieredPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -15820,10 +16266,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionTieredPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -16056,17 +16528,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for rating based on total usage quantities into the specified tier * @@ -16086,20 +16560,15 @@ private constructor( @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -16195,28 +16664,42 @@ private constructor( fun build(): TieredConfig = TieredConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("first_unit") - @ExcludeMissing - private val firstUnit: JsonField = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonProperty("last_unit") - @ExcludeMissing - private val lastUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val firstUnit: JsonField, + private val unitAmount: JsonField, + private val lastUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("first_unit") + @ExcludeMissing + firstUnit: JsonField = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + @JsonProperty("last_unit") + @ExcludeMissing + lastUnit: JsonField = JsonMissing.of(), + ) : this(firstUnit, unitAmount, lastUnit, mutableMapOf()) + /** * Inclusive tier starting value * @@ -16274,22 +16757,15 @@ private constructor( @ExcludeMissing fun _lastUnit(): JsonField = lastUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - firstUnit() - unitAmount() - lastUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -16425,10 +16901,23 @@ private constructor( checkRequired("firstUnit", firstUnit), checkRequired("unitAmount", unitAmount), lastUnit, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + firstUnit() + unitAmount() + lastUnit() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -16469,20 +16958,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -16521,21 +17013,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -16637,10 +17123,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -16773,20 +17271,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -16825,21 +17326,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -16942,10 +17437,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -17079,28 +17586,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -17147,7 +17649,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -17185,64 +17697,99 @@ private constructor( "NewSubscriptionTieredPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredConfig=$tieredConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionTieredBpsPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_bps_config") - @ExcludeMissing - private val tieredBpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredBpsConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_bps_config") + @ExcludeMissing + tieredBpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredBpsConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -17555,35 +18102,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionTieredBpsPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredBpsConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -18058,10 +18585,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionTieredBpsPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredBpsConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -18294,17 +18847,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredBpsConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for a Graduated BPS pricing model, where usage is bucketed into * specified tiers @@ -18325,20 +18880,15 @@ private constructor( @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredBpsConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -18437,31 +18987,46 @@ private constructor( fun build(): TieredBpsConfig = TieredBpsConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredBpsConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val bps: JsonField, + private val minimumAmount: JsonField, + private val maximumAmount: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") + @ExcludeMissing + bps: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, minimumAmount, maximumAmount, perUnitMaximum, mutableMapOf()) + /** * Per-event basis point rate * @@ -18536,23 +19101,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - bps() - minimumAmount() - maximumAmount() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -18702,10 +19259,24 @@ private constructor( checkRequired("minimumAmount", minimumAmount), maximumAmount, perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + bps() + minimumAmount() + maximumAmount() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -18746,20 +19317,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -18798,21 +19372,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -18914,10 +19482,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -19050,20 +19630,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -19102,21 +19685,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -19219,10 +19796,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -19356,28 +19945,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -19424,7 +20008,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -19462,64 +20056,99 @@ private constructor( "NewSubscriptionTieredBpsPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredBpsConfig=$tieredBpsConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionBpsPrice - @JsonCreator private constructor( - @JsonProperty("bps_config") - @ExcludeMissing - private val bpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bpsConfig: JsonField, + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps_config") + @ExcludeMissing + bpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + bpsConfig, + cadence, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -19831,35 +20460,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionBpsPrice = apply { - if (validated) { - return@apply - } - - bpsConfig().validate() - cadence() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -20331,24 +20940,53 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewSubscriptionBpsPrice = apply { + if (validated) { + return@apply + } + + bpsConfig().validate() + cadence() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + class BpsConfig - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bps: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") + @ExcludeMissing + bps: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, perUnitMaximum, mutableMapOf()) + /** * Basis point take rate per event * @@ -20385,21 +21023,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BpsConfig = apply { - if (validated) { - return@apply - } - - bps() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -20503,10 +21135,22 @@ private constructor( BpsConfig( checkRequired("bps", bps), perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BpsConfig = apply { + if (validated) { + return@apply + } + + bps() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -20761,20 +21405,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -20813,21 +21460,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -20929,10 +21570,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -21065,20 +21718,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -21117,21 +21773,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -21234,10 +21884,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -21371,28 +22033,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -21439,7 +22096,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -21477,64 +22144,99 @@ private constructor( "NewSubscriptionBpsPrice{bpsConfig=$bpsConfig, cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionBulkBpsPrice - @JsonCreator private constructor( - @JsonProperty("bulk_bps_config") - @ExcludeMissing - private val bulkBpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bulkBpsConfig: JsonField, + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bulk_bps_config") + @ExcludeMissing + bulkBpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + bulkBpsConfig, + cadence, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -21846,35 +22548,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionBulkBpsPrice = apply { - if (validated) { - return@apply - } - - bulkBpsConfig().validate() - cadence() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -22348,21 +23030,49 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewSubscriptionBulkBpsPrice = apply { + if (validated) { + return@apply + } + + bulkBpsConfig().validate() + cadence() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + class BulkBpsConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for a bulk BPS pricing model where all usage is aggregated to a single * tier based on total volume @@ -22383,20 +23093,15 @@ private constructor( @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkBpsConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -22494,28 +23199,42 @@ private constructor( fun build(): BulkBpsConfig = BulkBpsConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): BulkBpsConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val bps: JsonField, + private val maximumAmount: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") + @ExcludeMissing + bps: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, maximumAmount, perUnitMaximum, mutableMapOf()) + /** * Basis points to rate on * @@ -22571,22 +23290,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - bps() - maximumAmount() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -22716,10 +23428,23 @@ private constructor( checkRequired("bps", bps), maximumAmount, perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + bps() + maximumAmount() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -22992,20 +23717,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -23044,21 +23772,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -23160,10 +23882,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -23296,20 +24030,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -23348,21 +24085,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -23465,10 +24196,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -23602,28 +24345,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -23670,7 +24408,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -23708,64 +24456,99 @@ private constructor( "NewSubscriptionBulkBpsPrice{bulkBpsConfig=$bulkBpsConfig, cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionBulkPrice - @JsonCreator private constructor( - @JsonProperty("bulk_config") - @ExcludeMissing - private val bulkConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bulkConfig: JsonField, + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bulk_config") + @ExcludeMissing + bulkConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + bulkConfig, + cadence, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -24077,35 +24860,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionBulkPrice = apply { - if (validated) { - return@apply - } - - bulkConfig().validate() - cadence() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -24577,21 +25340,49 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewSubscriptionBulkPrice = apply { + if (validated) { + return@apply + } + + bulkConfig().validate() + cadence() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + class BulkConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Bulk tiers for rating based on total usage volume * @@ -24611,20 +25402,15 @@ private constructor( @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -24718,25 +25504,38 @@ private constructor( fun build(): BulkConfig = BulkConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): BulkConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonProperty("maximum_units") - @ExcludeMissing - private val maximumUnits: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val unitAmount: JsonField, + private val maximumUnits: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + @JsonProperty("maximum_units") + @ExcludeMissing + maximumUnits: JsonField = JsonMissing.of(), + ) : this(unitAmount, maximumUnits, mutableMapOf()) + /** * Amount per unit * @@ -24775,21 +25574,15 @@ private constructor( @ExcludeMissing fun _maximumUnits(): JsonField = maximumUnits + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - unitAmount() - maximumUnits() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -24905,10 +25698,22 @@ private constructor( Tier( checkRequired("unitAmount", unitAmount), maximumUnits, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + unitAmount() + maximumUnits() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -25181,20 +25986,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -25233,21 +26041,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -25349,10 +26151,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -25485,20 +26299,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -25537,21 +26354,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -25654,10 +26465,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -25791,28 +26614,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -25859,7 +26677,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -25897,65 +26725,100 @@ private constructor( "NewSubscriptionBulkPrice{bulkConfig=$bulkConfig, cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionThresholdTotalAmountPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("threshold_total_amount_config") - @ExcludeMissing - private val thresholdTotalAmountConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val thresholdTotalAmountConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("threshold_total_amount_config") + @ExcludeMissing + thresholdTotalAmountConfig: JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + thresholdTotalAmountConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -26269,35 +27132,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionThresholdTotalAmountPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - thresholdTotalAmountConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -26780,10 +27623,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionThresholdTotalAmountPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + thresholdTotalAmountConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -27016,28 +27885,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ThresholdTotalAmountConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): ThresholdTotalAmountConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -27090,7 +27954,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ThresholdTotalAmountConfig = - ThresholdTotalAmountConfig(additionalProperties.toImmutable()) + ThresholdTotalAmountConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): ThresholdTotalAmountConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -27115,20 +27989,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -27167,21 +28044,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -27283,10 +28154,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -27419,20 +28302,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -27471,21 +28357,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -27588,10 +28468,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -27725,28 +28617,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -27793,7 +28680,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -27831,64 +28728,99 @@ private constructor( "NewSubscriptionThresholdTotalAmountPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, thresholdTotalAmountConfig=$thresholdTotalAmountConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_package_config") - @ExcludeMissing - private val tieredPackageConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredPackageConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_package_config") + @ExcludeMissing + tieredPackageConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredPackageConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -28201,35 +29133,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionTieredPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredPackageConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -28705,10 +29617,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionTieredPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredPackageConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -28941,28 +29879,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredPackageConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): TieredPackageConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -29014,7 +29947,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageConfig = - TieredPackageConfig(additionalProperties.toImmutable()) + TieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -29039,20 +29982,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -29091,21 +30037,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -29207,10 +30147,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -29343,20 +30295,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -29395,21 +30350,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -29512,10 +30461,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -29649,28 +30610,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -29717,7 +30673,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -29755,65 +30721,99 @@ private constructor( "NewSubscriptionTieredPackagePrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredPackageConfig=$tieredPackageConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionTieredWithMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_with_minimum_config") - @ExcludeMissing - private val tieredWithMinimumConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredWithMinimumConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_with_minimum_config") + @ExcludeMissing + tieredWithMinimumConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredWithMinimumConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -30127,35 +31127,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionTieredWithMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredWithMinimumConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -30634,10 +31614,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionTieredWithMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredWithMinimumConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -30870,28 +31876,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredWithMinimumConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredWithMinimumConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -30944,7 +31945,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithMinimumConfig = - TieredWithMinimumConfig(additionalProperties.toImmutable()) + TieredWithMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredWithMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -30969,20 +31980,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -31021,21 +32035,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -31137,10 +32145,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -31273,20 +32293,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -31325,21 +32348,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -31442,10 +32459,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -31579,28 +32608,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -31647,7 +32671,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -31685,65 +32719,99 @@ private constructor( "NewSubscriptionTieredWithMinimumPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredWithMinimumConfig=$tieredWithMinimumConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionUnitWithPercentPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("unit_with_percent_config") - @ExcludeMissing - private val unitWithPercentConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val unitWithPercentConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("unit_with_percent_config") + @ExcludeMissing + unitWithPercentConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + unitWithPercentConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -32057,35 +33125,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionUnitWithPercentPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - unitWithPercentConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -32561,10 +33609,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionUnitWithPercentPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + unitWithPercentConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -32797,28 +33871,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitWithPercentConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): UnitWithPercentConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -32870,7 +33939,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithPercentConfig = - UnitWithPercentConfig(additionalProperties.toImmutable()) + UnitWithPercentConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): UnitWithPercentConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -32895,20 +33974,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -32947,21 +34029,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -33063,10 +34139,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -33199,20 +34287,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -33251,21 +34342,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -33368,10 +34453,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -33505,28 +34602,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -33573,7 +34665,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -33611,65 +34713,100 @@ private constructor( "NewSubscriptionUnitWithPercentPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, unitWithPercentConfig=$unitWithPercentConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionPackageWithAllocationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("package_with_allocation_config") - @ExcludeMissing - private val packageWithAllocationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val packageWithAllocationConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("package_with_allocation_config") + @ExcludeMissing + packageWithAllocationConfig: JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + packageWithAllocationConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -33983,35 +35120,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionPackageWithAllocationPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - packageWithAllocationConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -34499,10 +35616,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionPackageWithAllocationPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + packageWithAllocationConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -34735,28 +35878,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class PackageWithAllocationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PackageWithAllocationConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -34810,7 +35948,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): PackageWithAllocationConfig = - PackageWithAllocationConfig(additionalProperties.toImmutable()) + PackageWithAllocationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): PackageWithAllocationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -34835,20 +35983,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -34887,21 +36038,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -35003,10 +36148,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -35139,20 +36296,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -35191,21 +36351,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -35308,10 +36462,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -35445,28 +36611,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -35513,7 +36674,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -35551,65 +36722,100 @@ private constructor( "NewSubscriptionPackageWithAllocationPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, packageWithAllocationConfig=$packageWithAllocationConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionTierWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_with_proration_config") - @ExcludeMissing - private val tieredWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredWithProrationConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_with_proration_config") + @ExcludeMissing + tieredWithProrationConfig: JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredWithProrationConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -35923,35 +37129,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionTierWithProrationPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredWithProrationConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -36432,10 +37618,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionTierWithProrationPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredWithProrationConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -36668,28 +37880,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredWithProrationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredWithProrationConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -36742,7 +37949,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithProrationConfig = - TieredWithProrationConfig(additionalProperties.toImmutable()) + TieredWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -36767,20 +37984,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -36819,21 +38039,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -36935,10 +38149,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -37071,20 +38297,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -37123,21 +38352,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -37240,10 +38463,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -37377,28 +38612,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -37445,7 +38675,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -37483,65 +38723,99 @@ private constructor( "NewSubscriptionTierWithProrationPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredWithProrationConfig=$tieredWithProrationConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionUnitWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("unit_with_proration_config") - @ExcludeMissing - private val unitWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val unitWithProrationConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("unit_with_proration_config") + @ExcludeMissing + unitWithProrationConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + unitWithProrationConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -37855,35 +39129,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionUnitWithProrationPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - unitWithProrationConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -38362,10 +39616,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionUnitWithProrationPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + unitWithProrationConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -38598,28 +39878,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitWithProrationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): UnitWithProrationConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -38672,7 +39947,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithProrationConfig = - UnitWithProrationConfig(additionalProperties.toImmutable()) + UnitWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): UnitWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -38697,20 +39982,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -38749,21 +40037,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -38865,10 +40147,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -39001,20 +40295,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -39053,21 +40350,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -39170,10 +40461,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -39307,28 +40610,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -39375,7 +40673,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -39413,65 +40721,99 @@ private constructor( "NewSubscriptionUnitWithProrationPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, unitWithProrationConfig=$unitWithProrationConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionGroupedAllocationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("grouped_allocation_config") - @ExcludeMissing - private val groupedAllocationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val groupedAllocationConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("grouped_allocation_config") + @ExcludeMissing + groupedAllocationConfig: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + groupedAllocationConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -39785,35 +41127,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionGroupedAllocationPrice = apply { - if (validated) { - return@apply - } - - cadence() - groupedAllocationConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -40292,10 +41614,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionGroupedAllocationPrice = apply { + if (validated) { + return@apply + } + + cadence() + groupedAllocationConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -40427,28 +41775,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedAllocationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): GroupedAllocationConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -40501,7 +41844,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedAllocationConfig = - GroupedAllocationConfig(additionalProperties.toImmutable()) + GroupedAllocationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedAllocationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -40627,20 +41980,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -40679,21 +42035,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -40795,10 +42145,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -40931,20 +42293,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -40983,21 +42348,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -41100,10 +42459,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -41237,28 +42608,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -41305,7 +42671,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -41343,66 +42719,101 @@ private constructor( "NewSubscriptionGroupedAllocationPrice{cadence=$cadence, groupedAllocationConfig=$groupedAllocationConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionGroupedWithProratedMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("grouped_with_prorated_minimum_config") - @ExcludeMissing + private val cadence: JsonField, private val groupedWithProratedMinimumConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("grouped_with_prorated_minimum_config") + @ExcludeMissing + groupedWithProratedMinimumConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + groupedWithProratedMinimumConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -41718,35 +43129,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionGroupedWithProratedMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - groupedWithProratedMinimumConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -42246,10 +43637,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionGroupedWithProratedMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + groupedWithProratedMinimumConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -42381,28 +43798,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedWithProratedMinimumConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedWithProratedMinimumConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -42456,7 +43868,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithProratedMinimumConfig = - GroupedWithProratedMinimumConfig(additionalProperties.toImmutable()) + GroupedWithProratedMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedWithProratedMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -42583,20 +44005,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -42635,21 +44060,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -42751,10 +44170,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -42887,20 +44318,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -42939,21 +44373,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -43056,10 +44484,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -43193,28 +44633,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -43261,7 +44696,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -43299,65 +44744,99 @@ private constructor( "NewSubscriptionGroupedWithProratedMinimumPrice{cadence=$cadence, groupedWithProratedMinimumConfig=$groupedWithProratedMinimumConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionBulkWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("bulk_with_proration_config") - @ExcludeMissing - private val bulkWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bulkWithProrationConfig: JsonField, + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bulk_with_proration_config") + @ExcludeMissing + bulkWithProrationConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + bulkWithProrationConfig, + cadence, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -43671,35 +45150,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionBulkWithProrationPrice = apply { - if (validated) { - return@apply - } - - bulkWithProrationConfig().validate() - cadence() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -44178,32 +45637,53 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewSubscriptionBulkWithProrationPrice = apply { + if (validated) { + return@apply + } + + bulkWithProrationConfig().validate() + cadence() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + class BulkWithProrationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): BulkWithProrationConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -44256,7 +45736,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): BulkWithProrationConfig = - BulkWithProrationConfig(additionalProperties.toImmutable()) + BulkWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BulkWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -44513,20 +46003,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -44565,21 +46058,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -44681,10 +46168,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -44817,20 +46316,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -44869,21 +46371,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -44986,10 +46482,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -45123,28 +46631,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -45191,7 +46694,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -45229,66 +46742,102 @@ private constructor( "NewSubscriptionBulkWithProrationPrice{bulkWithProrationConfig=$bulkWithProrationConfig, cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionScalableMatrixWithUnitPricingPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("scalable_matrix_with_unit_pricing_config") - @ExcludeMissing + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, private val scalableMatrixWithUnitPricingConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("scalable_matrix_with_unit_pricing_config") + @ExcludeMissing + scalableMatrixWithUnitPricingConfig: + JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + scalableMatrixWithUnitPricingConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -45605,35 +47154,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionScalableMatrixWithUnitPricingPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - scalableMatrixWithUnitPricingConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -46136,10 +47665,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionScalableMatrixWithUnitPricingPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + scalableMatrixWithUnitPricingConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -46376,28 +47931,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ScalableMatrixWithUnitPricingConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ScalableMatrixWithUnitPricingConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -46452,7 +48002,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithUnitPricingConfig = - ScalableMatrixWithUnitPricingConfig(additionalProperties.toImmutable()) + ScalableMatrixWithUnitPricingConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): ScalableMatrixWithUnitPricingConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -46477,20 +48037,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -46529,21 +48092,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -46645,10 +48202,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -46781,20 +48350,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -46833,21 +48405,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -46950,10 +48516,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -47087,28 +48665,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -47155,7 +48728,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -47193,66 +48776,102 @@ private constructor( "NewSubscriptionScalableMatrixWithUnitPricingPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, scalableMatrixWithUnitPricingConfig=$scalableMatrixWithUnitPricingConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionScalableMatrixWithTieredPricingPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("scalable_matrix_with_tiered_pricing_config") - @ExcludeMissing + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, private val scalableMatrixWithTieredPricingConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("scalable_matrix_with_tiered_pricing_config") + @ExcludeMissing + scalableMatrixWithTieredPricingConfig: + JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + scalableMatrixWithTieredPricingConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -47569,35 +49188,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionScalableMatrixWithTieredPricingPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - scalableMatrixWithTieredPricingConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -48101,10 +49700,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionScalableMatrixWithTieredPricingPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + scalableMatrixWithTieredPricingConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -48341,28 +49966,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ScalableMatrixWithTieredPricingConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): ScalableMatrixWithTieredPricingConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -48419,10 +50039,20 @@ private constructor( */ fun build(): ScalableMatrixWithTieredPricingConfig = ScalableMatrixWithTieredPricingConfig( - additionalProperties.toImmutable() + additionalProperties.toMutableMap() ) } + private var validated: Boolean = false + + fun validate(): ScalableMatrixWithTieredPricingConfig = apply { + if (validated) { + return@apply + } + + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -48445,20 +50075,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -48497,21 +50130,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -48613,10 +50240,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -48749,20 +50388,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -48801,21 +50443,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -48918,10 +50554,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -49055,28 +50703,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -49123,7 +50766,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -49161,65 +50814,100 @@ private constructor( "NewSubscriptionScalableMatrixWithTieredPricingPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, scalableMatrixWithTieredPricingConfig=$scalableMatrixWithTieredPricingConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionCumulativeGroupedBulkPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("cumulative_grouped_bulk_config") - @ExcludeMissing - private val cumulativeGroupedBulkConfig: JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val cumulativeGroupedBulkConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("cumulative_grouped_bulk_config") + @ExcludeMissing + cumulativeGroupedBulkConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + cumulativeGroupedBulkConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -49533,35 +51221,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionCumulativeGroupedBulkPrice = apply { - if (validated) { - return@apply - } - - cadence() - cumulativeGroupedBulkConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -50049,10 +51717,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionCumulativeGroupedBulkPrice = apply { + if (validated) { + return@apply + } + + cadence() + cumulativeGroupedBulkConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -50184,28 +51878,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CumulativeGroupedBulkConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): CumulativeGroupedBulkConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -50259,7 +51948,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): CumulativeGroupedBulkConfig = - CumulativeGroupedBulkConfig(additionalProperties.toImmutable()) + CumulativeGroupedBulkConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): CumulativeGroupedBulkConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -50385,20 +52084,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -50437,21 +52139,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -50553,10 +52249,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -50689,20 +52397,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -50741,21 +52452,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -50858,10 +52563,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -50995,28 +52712,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -51063,7 +52775,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -51101,65 +52823,100 @@ private constructor( "NewSubscriptionCumulativeGroupedBulkPrice{cadence=$cadence, cumulativeGroupedBulkConfig=$cumulativeGroupedBulkConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionMaxGroupTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("max_group_tiered_package_config") - @ExcludeMissing - private val maxGroupTieredPackageConfig: JsonField = - JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val maxGroupTieredPackageConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("max_group_tiered_package_config") + @ExcludeMissing + maxGroupTieredPackageConfig: JsonField = + JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + maxGroupTieredPackageConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -51473,35 +53230,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionMaxGroupTieredPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - maxGroupTieredPackageConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -51989,10 +53726,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionMaxGroupTieredPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + maxGroupTieredPackageConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -52124,28 +53887,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MaxGroupTieredPackageConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): MaxGroupTieredPackageConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -52199,7 +53957,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MaxGroupTieredPackageConfig = - MaxGroupTieredPackageConfig(additionalProperties.toImmutable()) + MaxGroupTieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): MaxGroupTieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -52325,20 +54093,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -52377,21 +54148,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -52493,10 +54258,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -52629,20 +54406,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -52681,21 +54461,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -52798,10 +54572,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -52935,28 +54721,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -53003,7 +54784,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -53041,66 +54832,101 @@ private constructor( "NewSubscriptionMaxGroupTieredPackagePrice{cadence=$cadence, itemId=$itemId, maxGroupTieredPackageConfig=$maxGroupTieredPackageConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionGroupedWithMeteredMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("grouped_with_metered_minimum_config") - @ExcludeMissing + private val cadence: JsonField, private val groupedWithMeteredMinimumConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("grouped_with_metered_minimum_config") + @ExcludeMissing + groupedWithMeteredMinimumConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + groupedWithMeteredMinimumConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -53416,35 +55242,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionGroupedWithMeteredMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - groupedWithMeteredMinimumConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -53943,10 +55749,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionGroupedWithMeteredMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + groupedWithMeteredMinimumConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -54078,28 +55910,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedWithMeteredMinimumConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedWithMeteredMinimumConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -54153,7 +55980,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithMeteredMinimumConfig = - GroupedWithMeteredMinimumConfig(additionalProperties.toImmutable()) + GroupedWithMeteredMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedWithMeteredMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -54280,20 +56117,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -54332,21 +56172,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -54448,10 +56282,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -54584,20 +56430,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -54636,21 +56485,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -54753,10 +56596,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -54890,28 +56745,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -54958,7 +56808,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -54996,65 +56856,100 @@ private constructor( "NewSubscriptionGroupedWithMeteredMinimumPrice{cadence=$cadence, groupedWithMeteredMinimumConfig=$groupedWithMeteredMinimumConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionMatrixWithDisplayNamePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("matrix_with_display_name_config") - @ExcludeMissing - private val matrixWithDisplayNameConfig: JsonField = - JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val matrixWithDisplayNameConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("matrix_with_display_name_config") + @ExcludeMissing + matrixWithDisplayNameConfig: JsonField = + JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + matrixWithDisplayNameConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -55368,35 +57263,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionMatrixWithDisplayNamePrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - matrixWithDisplayNameConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -55884,10 +57759,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionMatrixWithDisplayNamePrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + matrixWithDisplayNameConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -56019,28 +57920,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MatrixWithDisplayNameConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixWithDisplayNameConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -56094,7 +57990,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MatrixWithDisplayNameConfig = - MatrixWithDisplayNameConfig(additionalProperties.toImmutable()) + MatrixWithDisplayNameConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): MatrixWithDisplayNameConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -56220,20 +58126,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -56272,21 +58181,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -56388,10 +58291,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -56524,20 +58439,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -56576,21 +58494,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -56693,10 +58605,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -56830,28 +58754,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -56898,7 +58817,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -56936,65 +58865,100 @@ private constructor( "NewSubscriptionMatrixWithDisplayNamePrice{cadence=$cadence, itemId=$itemId, matrixWithDisplayNameConfig=$matrixWithDisplayNameConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionGroupedTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("grouped_tiered_package_config") - @ExcludeMissing - private val groupedTieredPackageConfig: JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val groupedTieredPackageConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("grouped_tiered_package_config") + @ExcludeMissing + groupedTieredPackageConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + groupedTieredPackageConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -57308,35 +59272,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionGroupedTieredPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - groupedTieredPackageConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -57819,10 +59763,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionGroupedTieredPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + groupedTieredPackageConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -57954,28 +59924,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedTieredPackageConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): GroupedTieredPackageConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -58028,7 +59993,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredPackageConfig = - GroupedTieredPackageConfig(additionalProperties.toImmutable()) + GroupedTieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedTieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -58154,20 +60129,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -58206,21 +60184,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -58322,10 +60294,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -58458,20 +60442,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -58510,21 +60497,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -58627,10 +60608,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -58764,28 +60757,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -58832,7 +60820,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -59002,19 +61000,21 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class BillingCycleAnchorConfiguration - @JsonCreator private constructor( - @JsonProperty("day") @ExcludeMissing private val day: JsonField = JsonMissing.of(), - @JsonProperty("month") - @ExcludeMissing - private val month: JsonField = JsonMissing.of(), - @JsonProperty("year") @ExcludeMissing private val year: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val day: JsonField, + private val month: JsonField, + private val year: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("day") @ExcludeMissing day: JsonField = JsonMissing.of(), + @JsonProperty("month") @ExcludeMissing month: JsonField = JsonMissing.of(), + @JsonProperty("year") @ExcludeMissing year: JsonField = JsonMissing.of(), + ) : this(day, month, year, mutableMapOf()) + /** * The day of the month on which the billing cycle is anchored. If the maximum number of * days in a month is greater than this value, the last day of the month is the billing @@ -59065,22 +61065,15 @@ private constructor( */ @JsonProperty("year") @ExcludeMissing fun _year(): JsonField = year + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleAnchorConfiguration = apply { - if (validated) { - return@apply - } - - day() - month() - year() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -59219,10 +61212,23 @@ private constructor( checkRequired("day", day), month, year, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleAnchorConfiguration = apply { + if (validated) { + return@apply + } + + day() + month() + year() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -59241,17 +61247,19 @@ private constructor( "BillingCycleAnchorConfiguration{day=$day, month=$month, year=$year, additionalProperties=$additionalProperties}" } - @NoAutoDetect class RemoveAdjustment - @JsonCreator private constructor( - @JsonProperty("adjustment_id") - @ExcludeMissing - private val adjustmentId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_id") + @ExcludeMissing + adjustmentId: JsonField = JsonMissing.of() + ) : this(adjustmentId, mutableMapOf()) + /** * The id of the adjustment to remove on the subscription. * @@ -59270,20 +61278,15 @@ private constructor( @ExcludeMissing fun _adjustmentId(): JsonField = adjustmentId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): RemoveAdjustment = apply { - if (validated) { - return@apply - } - - adjustmentId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -59360,10 +61363,21 @@ private constructor( fun build(): RemoveAdjustment = RemoveAdjustment( checkRequired("adjustmentId", adjustmentId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): RemoveAdjustment = apply { + if (validated) { + return@apply + } + + adjustmentId() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -59382,20 +61396,21 @@ private constructor( "RemoveAdjustment{adjustmentId=$adjustmentId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class RemovePrice - @JsonCreator private constructor( - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val externalPriceId: JsonField, + private val priceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + ) : this(externalPriceId, priceId, mutableMapOf()) + /** * The external price id of the price to remove on the subscription. * @@ -59430,21 +61445,15 @@ private constructor( */ @JsonProperty("price_id") @ExcludeMissing fun _priceId(): JsonField = priceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): RemovePrice = apply { - if (validated) { - return@apply - } - - externalPriceId() - priceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -59527,7 +61536,19 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): RemovePrice = - RemovePrice(externalPriceId, priceId, additionalProperties.toImmutable()) + RemovePrice(externalPriceId, priceId, additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): RemovePrice = apply { + if (validated) { + return@apply + } + + externalPriceId() + priceId() + validated = true } override fun equals(other: Any?): Boolean { @@ -59548,20 +61569,23 @@ private constructor( "RemovePrice{externalPriceId=$externalPriceId, priceId=$priceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class ReplaceAdjustment - @JsonCreator private constructor( - @JsonProperty("adjustment") - @ExcludeMissing - private val adjustment: JsonField = JsonMissing.of(), - @JsonProperty("replaces_adjustment_id") - @ExcludeMissing - private val replacesAdjustmentId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustment: JsonField, + private val replacesAdjustmentId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment") + @ExcludeMissing + adjustment: JsonField = JsonMissing.of(), + @JsonProperty("replaces_adjustment_id") + @ExcludeMissing + replacesAdjustmentId: JsonField = JsonMissing.of(), + ) : this(adjustment, replacesAdjustmentId, mutableMapOf()) + /** * The definition of a new adjustment to create and add to the subscription. * @@ -59598,21 +61622,15 @@ private constructor( @ExcludeMissing fun _replacesAdjustmentId(): JsonField = replacesAdjustmentId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ReplaceAdjustment = apply { - if (validated) { - return@apply - } - - adjustment().validate() - replacesAdjustmentId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -59738,10 +61756,22 @@ private constructor( ReplaceAdjustment( checkRequired("adjustment", adjustment), checkRequired("replacesAdjustmentId", replacesAdjustmentId), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): ReplaceAdjustment = apply { + if (validated) { + return@apply + } + + adjustment().validate() + replacesAdjustmentId() + validated = true + } + /** The definition of a new adjustment to create and add to the subscription. */ @JsonDeserialize(using = Adjustment.Deserializer::class) @JsonSerialize(using = Adjustment.Serializer::class) @@ -59986,26 +62016,37 @@ private constructor( } } - @NoAutoDetect class NewPercentageDiscount - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val percentageDiscount: JsonField, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + appliesToPriceIds, + percentageDiscount, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -60081,23 +62122,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewPercentageDiscount = apply { - if (validated) { - return@apply - } - - adjustmentType() - appliesToPriceIds() - percentageDiscount() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -60254,10 +62287,24 @@ private constructor( }, checkRequired("percentageDiscount", percentageDiscount), isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewPercentageDiscount = apply { + if (validated) { + return@apply + } + + adjustmentType() + appliesToPriceIds() + percentageDiscount() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -60378,26 +62425,37 @@ private constructor( "NewPercentageDiscount{adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, percentageDiscount=$percentageDiscount, isInvoiceLevel=$isInvoiceLevel, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewUsageDiscount - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val usageDiscount: JsonField, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + appliesToPriceIds, + usageDiscount, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -60472,23 +62530,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewUsageDiscount = apply { - if (validated) { - return@apply - } - - adjustmentType() - appliesToPriceIds() - usageDiscount() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -60643,10 +62693,24 @@ private constructor( }, checkRequired("usageDiscount", usageDiscount), isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewUsageDiscount = apply { + if (validated) { + return@apply + } + + adjustmentType() + appliesToPriceIds() + usageDiscount() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -60767,26 +62831,37 @@ private constructor( "NewUsageDiscount{adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, usageDiscount=$usageDiscount, isInvoiceLevel=$isInvoiceLevel, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewAmountDiscount - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + amountDiscount, + appliesToPriceIds, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -60861,23 +62936,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewAmountDiscount = apply { - if (validated) { - return@apply - } - - adjustmentType() - amountDiscount() - appliesToPriceIds() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -61033,10 +63100,24 @@ private constructor( it.toImmutable() }, isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewAmountDiscount = apply { + if (validated) { + return@apply + } + + adjustmentType() + amountDiscount() + appliesToPriceIds() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -61157,29 +63238,42 @@ private constructor( "NewAmountDiscount{adjustmentType=$adjustmentType, amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewMinimum - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val itemId: JsonField, + private val minimumAmount: JsonField, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + appliesToPriceIds, + itemId, + minimumAmount, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -61271,24 +63365,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewMinimum = apply { - if (validated) { - return@apply - } - - adjustmentType() - appliesToPriceIds() - itemId() - minimumAmount() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -61459,10 +63544,25 @@ private constructor( checkRequired("itemId", itemId), checkRequired("minimumAmount", minimumAmount), isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewMinimum = apply { + if (validated) { + return@apply + } + + adjustmentType() + appliesToPriceIds() + itemId() + minimumAmount() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -61583,26 +63683,37 @@ private constructor( "NewMinimum{adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, itemId=$itemId, minimumAmount=$minimumAmount, isInvoiceLevel=$isInvoiceLevel, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewMaximum - @JsonCreator private constructor( - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val maximumAmount: JsonField, + private val isInvoiceLevel: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + ) : this( + adjustmentType, + appliesToPriceIds, + maximumAmount, + isInvoiceLevel, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -61677,23 +63788,15 @@ private constructor( @ExcludeMissing fun _isInvoiceLevel(): JsonField = isInvoiceLevel + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewMaximum = apply { - if (validated) { - return@apply - } - - adjustmentType() - appliesToPriceIds() - maximumAmount() - isInvoiceLevel() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -61847,10 +63950,24 @@ private constructor( }, checkRequired("maximumAmount", maximumAmount), isInvoiceLevel, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewMaximum = apply { + if (validated) { + return@apply + } + + adjustmentType() + appliesToPriceIds() + maximumAmount() + isInvoiceLevel() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -61990,41 +64107,58 @@ private constructor( "ReplaceAdjustment{adjustment=$adjustment, replacesAdjustmentId=$replacesAdjustmentId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class ReplacePrice - @JsonCreator private constructor( - @JsonProperty("replaces_price_id") - @ExcludeMissing - private val replacesPriceId: JsonField = JsonMissing.of(), - @JsonProperty("allocation_price") - @ExcludeMissing - private val allocationPrice: JsonField = JsonMissing.of(), - @JsonProperty("discounts") - @ExcludeMissing - private val discounts: JsonField> = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("price") - @ExcludeMissing - private val price: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val replacesPriceId: JsonField, + private val allocationPrice: JsonField, + private val discounts: JsonField>, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val maximumAmount: JsonField, + private val minimumAmount: JsonField, + private val price: JsonField, + private val priceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("replaces_price_id") + @ExcludeMissing + replacesPriceId: JsonField = JsonMissing.of(), + @JsonProperty("allocation_price") + @ExcludeMissing + allocationPrice: JsonField = JsonMissing.of(), + @JsonProperty("discounts") + @ExcludeMissing + discounts: JsonField> = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + ) : this( + replacesPriceId, + allocationPrice, + discounts, + externalPriceId, + fixedPriceQuantity, + maximumAmount, + minimumAmount, + price, + priceId, + mutableMapOf(), + ) + /** * The id of the price on the plan to replace in the subscription. * @@ -62195,28 +64329,15 @@ private constructor( */ @JsonProperty("price_id") @ExcludeMissing fun _priceId(): JsonField = priceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ReplacePrice = apply { - if (validated) { - return@apply - } - - replacesPriceId() - allocationPrice().ifPresent { it.validate() } - discounts().ifPresent { it.forEach { it.validate() } } - externalPriceId() - fixedPriceQuantity() - maximumAmount() - minimumAmount() - price().ifPresent { it.validate() } - priceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -62741,31 +64862,55 @@ private constructor( minimumAmount, price, priceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): ReplacePrice = apply { + if (validated) { + return@apply + } + + replacesPriceId() + allocationPrice().ifPresent { it.validate() } + discounts().ifPresent { it.forEach { it.validate() } } + externalPriceId() + fixedPriceQuantity() + maximumAmount() + minimumAmount() + price().ifPresent { it.validate() } + priceId() + validated = true + } + /** The definition of a new allocation price to create and add to the subscription. */ - @NoAutoDetect class AllocationPrice - @JsonCreator private constructor( - @JsonProperty("amount") - @ExcludeMissing - private val amount: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("expires_at_end_of_cadence") - @ExcludeMissing - private val expiresAtEndOfCadence: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amount: JsonField, + private val cadence: JsonField, + private val currency: JsonField, + private val expiresAtEndOfCadence: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount") + @ExcludeMissing + amount: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("expires_at_end_of_cadence") + @ExcludeMissing + expiresAtEndOfCadence: JsonField = JsonMissing.of(), + ) : this(amount, cadence, currency, expiresAtEndOfCadence, mutableMapOf()) + /** * An amount of the currency to allocate to the customer at the specified cadence. * @@ -62837,23 +64982,15 @@ private constructor( @ExcludeMissing fun _expiresAtEndOfCadence(): JsonField = expiresAtEndOfCadence + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AllocationPrice = apply { - if (validated) { - return@apply - } - - amount() - cadence() - currency() - expiresAtEndOfCadence() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -62993,10 +65130,24 @@ private constructor( checkRequired("cadence", cadence), checkRequired("currency", currency), checkRequired("expiresAtEndOfCadence", expiresAtEndOfCadence), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AllocationPrice = apply { + if (validated) { + return@apply + } + + amount() + cadence() + currency() + expiresAtEndOfCadence() + validated = true + } + /** The cadence at which to allocate the amount to the customer. */ class Cadence @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -63144,26 +65295,37 @@ private constructor( "AllocationPrice{amount=$amount, cadence=$cadence, currency=$currency, expiresAtEndOfCadence=$expiresAtEndOfCadence, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Discount - @JsonCreator private constructor( - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val discountType: JsonField, + private val amountDiscount: JsonField, + private val percentageDiscount: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + discountType, + amountDiscount, + percentageDiscount, + usageDiscount, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -63239,23 +65401,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Discount = apply { - if (validated) { - return@apply - } - - discountType() - amountDiscount() - percentageDiscount() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -63427,10 +65581,24 @@ private constructor( amountDiscount, percentageDiscount, usageDiscount, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Discount = apply { + if (validated) { + return@apply + } + + discountType() + amountDiscount() + percentageDiscount() + usageDiscount() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -64850,64 +67018,99 @@ private constructor( } } - @NoAutoDetect class NewSubscriptionUnitPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("unit_config") - @ExcludeMissing - private val unitConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val unitConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("unit_config") + @ExcludeMissing + unitConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + unitConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -65219,35 +67422,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionUnitPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - unitConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -65719,10 +67902,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionUnitPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + unitConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -65955,17 +68164,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitConfig - @JsonCreator private constructor( - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of() + ) : this(unitAmount, mutableMapOf()) + /** * Rate per unit of usage * @@ -65985,20 +68196,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitConfig = apply { - if (validated) { - return@apply - } - - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -66079,10 +68285,21 @@ private constructor( fun build(): UnitConfig = UnitConfig( checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UnitConfig = apply { + if (validated) { + return@apply + } + + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -66105,20 +68322,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -66157,21 +68377,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -66273,10 +68487,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -66409,20 +68635,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -66461,21 +68690,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -66578,10 +68801,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -66715,28 +68950,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -66783,7 +69013,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -66821,64 +69061,99 @@ private constructor( "NewSubscriptionUnitPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, unitConfig=$unitConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("package_config") - @ExcludeMissing - private val packageConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val packageConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("package_config") + @ExcludeMissing + packageConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + packageConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -67190,35 +69465,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - packageConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -67692,10 +69947,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + packageConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -67928,20 +70209,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class PackageConfig - @JsonCreator private constructor( - @JsonProperty("package_amount") - @ExcludeMissing - private val packageAmount: JsonField = JsonMissing.of(), - @JsonProperty("package_size") - @ExcludeMissing - private val packageSize: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val packageAmount: JsonField, + private val packageSize: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("package_amount") + @ExcludeMissing + packageAmount: JsonField = JsonMissing.of(), + @JsonProperty("package_size") + @ExcludeMissing + packageSize: JsonField = JsonMissing.of(), + ) : this(packageAmount, packageSize, mutableMapOf()) + /** * A currency amount to rate usage by * @@ -67981,21 +70265,15 @@ private constructor( @ExcludeMissing fun _packageSize(): JsonField = packageSize + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PackageConfig = apply { - if (validated) { - return@apply - } - - packageAmount() - packageSize() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -68100,10 +70378,22 @@ private constructor( PackageConfig( checkRequired("packageAmount", packageAmount), checkRequired("packageSize", packageSize), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PackageConfig = apply { + if (validated) { + return@apply + } + + packageAmount() + packageSize() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -68126,20 +70416,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -68178,21 +70471,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -68294,10 +70581,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -68430,20 +70729,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -68482,21 +70784,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -68599,10 +70895,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -68736,28 +71044,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -68804,7 +71107,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -68842,64 +71155,99 @@ private constructor( "NewSubscriptionPackagePrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, packageConfig=$packageConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionMatrixPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("matrix_config") - @ExcludeMissing - private val matrixConfig: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val matrixConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("matrix_config") + @ExcludeMissing + matrixConfig: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + matrixConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -69211,35 +71559,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionMatrixPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - matrixConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -69713,10 +72041,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionMatrixPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + matrixConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -69848,23 +72202,27 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MatrixConfig - @JsonCreator private constructor( - @JsonProperty("default_unit_amount") - @ExcludeMissing - private val defaultUnitAmount: JsonField = JsonMissing.of(), - @JsonProperty("dimensions") - @ExcludeMissing - private val dimensions: JsonField> = JsonMissing.of(), - @JsonProperty("matrix_values") - @ExcludeMissing - private val matrixValues: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val defaultUnitAmount: JsonField, + private val dimensions: JsonField>, + private val matrixValues: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("default_unit_amount") + @ExcludeMissing + defaultUnitAmount: JsonField = JsonMissing.of(), + @JsonProperty("dimensions") + @ExcludeMissing + dimensions: JsonField> = JsonMissing.of(), + @JsonProperty("matrix_values") + @ExcludeMissing + matrixValues: JsonField> = JsonMissing.of(), + ) : this(defaultUnitAmount, dimensions, matrixValues, mutableMapOf()) + /** * Default per unit rate for any usage not bucketed into a specified * matrix_value @@ -69925,22 +72283,15 @@ private constructor( @ExcludeMissing fun _matrixValues(): JsonField> = matrixValues + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixConfig = apply { - if (validated) { - return@apply - } - - defaultUnitAmount() - dimensions() - matrixValues().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -70093,25 +72444,40 @@ private constructor( checkRequired("matrixValues", matrixValues).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): MatrixConfig = apply { + if (validated) { + return@apply + } + + defaultUnitAmount() + dimensions() + matrixValues().forEach { it.validate() } + validated = true + } + class MatrixValue - @JsonCreator private constructor( - @JsonProperty("dimension_values") - @ExcludeMissing - private val dimensionValues: JsonField> = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val dimensionValues: JsonField>, + private val unitAmount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("dimension_values") + @ExcludeMissing + dimensionValues: JsonField> = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + ) : this(dimensionValues, unitAmount, mutableMapOf()) + /** * One or two matrix keys to filter usage to this Matrix value by. For * example, ["region", "tier"] could be used to filter cloud usage by a @@ -70153,21 +72519,15 @@ private constructor( @ExcludeMissing fun _unitAmount(): JsonField = unitAmount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MatrixValue = apply { - if (validated) { - return@apply - } - - dimensionValues() - unitAmount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -70292,10 +72652,22 @@ private constructor( it.toImmutable() }, checkRequired("unitAmount", unitAmount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MatrixValue = apply { + if (validated) { + return@apply + } + + dimensionValues() + unitAmount() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -70437,20 +72809,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -70489,21 +72864,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -70605,10 +72974,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -70741,20 +73122,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -70793,21 +73177,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -70910,10 +73288,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -71047,28 +73437,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -71115,7 +73500,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -71153,64 +73548,99 @@ private constructor( "NewSubscriptionMatrixPrice{cadence=$cadence, itemId=$itemId, matrixConfig=$matrixConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionTieredPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_config") - @ExcludeMissing - private val tieredConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_config") + @ExcludeMissing + tieredConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -71522,35 +73952,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionTieredPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -72024,10 +74434,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionTieredPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -72260,17 +74696,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for rating based on total usage quantities into the specified tier * @@ -72290,20 +74728,15 @@ private constructor( @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -72399,28 +74832,42 @@ private constructor( fun build(): TieredConfig = TieredConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("first_unit") - @ExcludeMissing - private val firstUnit: JsonField = JsonMissing.of(), - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonProperty("last_unit") - @ExcludeMissing - private val lastUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val firstUnit: JsonField, + private val unitAmount: JsonField, + private val lastUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("first_unit") + @ExcludeMissing + firstUnit: JsonField = JsonMissing.of(), + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + @JsonProperty("last_unit") + @ExcludeMissing + lastUnit: JsonField = JsonMissing.of(), + ) : this(firstUnit, unitAmount, lastUnit, mutableMapOf()) + /** * Inclusive tier starting value * @@ -72478,22 +74925,15 @@ private constructor( @ExcludeMissing fun _lastUnit(): JsonField = lastUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - firstUnit() - unitAmount() - lastUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -72629,10 +75069,23 @@ private constructor( checkRequired("firstUnit", firstUnit), checkRequired("unitAmount", unitAmount), lastUnit, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + firstUnit() + unitAmount() + lastUnit() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -72673,20 +75126,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -72725,21 +75181,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -72841,10 +75291,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -72977,20 +75439,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -73029,21 +75494,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -73146,10 +75605,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -73283,28 +75754,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -73351,7 +75817,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -73389,64 +75865,99 @@ private constructor( "NewSubscriptionTieredPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredConfig=$tieredConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionTieredBpsPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_bps_config") - @ExcludeMissing - private val tieredBpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredBpsConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_bps_config") + @ExcludeMissing + tieredBpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredBpsConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -73759,35 +76270,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionTieredBpsPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredBpsConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -74262,10 +76753,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionTieredBpsPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredBpsConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -74498,17 +77015,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredBpsConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for a Graduated BPS pricing model, where usage is bucketed into * specified tiers @@ -74529,20 +77048,15 @@ private constructor( @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredBpsConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -74641,31 +77155,46 @@ private constructor( fun build(): TieredBpsConfig = TieredBpsConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): TieredBpsConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val bps: JsonField, + private val minimumAmount: JsonField, + private val maximumAmount: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") + @ExcludeMissing + bps: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, minimumAmount, maximumAmount, perUnitMaximum, mutableMapOf()) + /** * Per-event basis point rate * @@ -74740,23 +77269,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - bps() - minimumAmount() - maximumAmount() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -74906,10 +77427,24 @@ private constructor( checkRequired("minimumAmount", minimumAmount), maximumAmount, perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + bps() + minimumAmount() + maximumAmount() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -74950,20 +77485,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -75002,21 +77540,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -75118,10 +77650,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -75254,20 +77798,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -75306,21 +77853,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -75423,10 +77964,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -75560,28 +78113,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -75628,7 +78176,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -75666,64 +78224,99 @@ private constructor( "NewSubscriptionTieredBpsPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredBpsConfig=$tieredBpsConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionBpsPrice - @JsonCreator private constructor( - @JsonProperty("bps_config") - @ExcludeMissing - private val bpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bpsConfig: JsonField, + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps_config") + @ExcludeMissing + bpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + bpsConfig, + cadence, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -76035,35 +78628,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionBpsPrice = apply { - if (validated) { - return@apply - } - - bpsConfig().validate() - cadence() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -76535,24 +79108,53 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewSubscriptionBpsPrice = apply { + if (validated) { + return@apply + } + + bpsConfig().validate() + cadence() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + class BpsConfig - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bps: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") + @ExcludeMissing + bps: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, perUnitMaximum, mutableMapOf()) + /** * Basis point take rate per event * @@ -76589,21 +79191,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BpsConfig = apply { - if (validated) { - return@apply - } - - bps() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -76707,10 +79303,22 @@ private constructor( BpsConfig( checkRequired("bps", bps), perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BpsConfig = apply { + if (validated) { + return@apply + } + + bps() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -76965,20 +79573,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -77017,21 +79628,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -77133,10 +79738,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -77269,20 +79886,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -77321,21 +79941,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -77438,10 +80052,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -77575,28 +80201,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -77643,7 +80264,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -77681,64 +80312,99 @@ private constructor( "NewSubscriptionBpsPrice{bpsConfig=$bpsConfig, cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionBulkBpsPrice - @JsonCreator private constructor( - @JsonProperty("bulk_bps_config") - @ExcludeMissing - private val bulkBpsConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bulkBpsConfig: JsonField, + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bulk_bps_config") + @ExcludeMissing + bulkBpsConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + bulkBpsConfig, + cadence, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -78050,35 +80716,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionBulkBpsPrice = apply { - if (validated) { - return@apply - } - - bulkBpsConfig().validate() - cadence() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -78552,21 +81198,49 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewSubscriptionBulkBpsPrice = apply { + if (validated) { + return@apply + } + + bulkBpsConfig().validate() + cadence() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + class BulkBpsConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Tiers for a bulk BPS pricing model where all usage is aggregated to a single * tier based on total volume @@ -78587,20 +81261,15 @@ private constructor( @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkBpsConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -78698,28 +81367,42 @@ private constructor( fun build(): BulkBpsConfig = BulkBpsConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): BulkBpsConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("bps") - @ExcludeMissing - private val bps: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("per_unit_maximum") - @ExcludeMissing - private val perUnitMaximum: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val bps: JsonField, + private val maximumAmount: JsonField, + private val perUnitMaximum: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bps") + @ExcludeMissing + bps: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("per_unit_maximum") + @ExcludeMissing + perUnitMaximum: JsonField = JsonMissing.of(), + ) : this(bps, maximumAmount, perUnitMaximum, mutableMapOf()) + /** * Basis points to rate on * @@ -78775,22 +81458,15 @@ private constructor( @ExcludeMissing fun _perUnitMaximum(): JsonField = perUnitMaximum + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - bps() - maximumAmount() - perUnitMaximum() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -78920,10 +81596,23 @@ private constructor( checkRequired("bps", bps), maximumAmount, perUnitMaximum, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + bps() + maximumAmount() + perUnitMaximum() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -79196,20 +81885,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -79248,21 +81940,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -79364,10 +82050,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -79500,20 +82198,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -79552,21 +82253,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -79669,10 +82364,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -79806,28 +82513,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -79874,7 +82576,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -79912,64 +82624,99 @@ private constructor( "NewSubscriptionBulkBpsPrice{bulkBpsConfig=$bulkBpsConfig, cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionBulkPrice - @JsonCreator private constructor( - @JsonProperty("bulk_config") - @ExcludeMissing - private val bulkConfig: JsonField = JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bulkConfig: JsonField, + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bulk_config") + @ExcludeMissing + bulkConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + bulkConfig, + cadence, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -80281,35 +83028,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionBulkPrice = apply { - if (validated) { - return@apply - } - - bulkConfig().validate() - cadence() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -80781,21 +83508,49 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewSubscriptionBulkPrice = apply { + if (validated) { + return@apply + } + + bulkConfig().validate() + cadence() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + class BulkConfig - @JsonCreator private constructor( - @JsonProperty("tiers") - @ExcludeMissing - private val tiers: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val tiers: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("tiers") + @ExcludeMissing + tiers: JsonField> = JsonMissing.of() + ) : this(tiers, mutableMapOf()) + /** * Bulk tiers for rating based on total usage volume * @@ -80815,20 +83570,15 @@ private constructor( @ExcludeMissing fun _tiers(): JsonField> = tiers + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkConfig = apply { - if (validated) { - return@apply - } - - tiers().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -80922,25 +83672,38 @@ private constructor( fun build(): BulkConfig = BulkConfig( checkRequired("tiers", tiers).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): BulkConfig = apply { + if (validated) { + return@apply + } + + tiers().forEach { it.validate() } + validated = true + } + class Tier - @JsonCreator private constructor( - @JsonProperty("unit_amount") - @ExcludeMissing - private val unitAmount: JsonField = JsonMissing.of(), - @JsonProperty("maximum_units") - @ExcludeMissing - private val maximumUnits: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = - immutableEmptyMap(), + private val unitAmount: JsonField, + private val maximumUnits: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("unit_amount") + @ExcludeMissing + unitAmount: JsonField = JsonMissing.of(), + @JsonProperty("maximum_units") + @ExcludeMissing + maximumUnits: JsonField = JsonMissing.of(), + ) : this(unitAmount, maximumUnits, mutableMapOf()) + /** * Amount per unit * @@ -80979,21 +83742,15 @@ private constructor( @ExcludeMissing fun _maximumUnits(): JsonField = maximumUnits + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Tier = apply { - if (validated) { - return@apply - } - - unitAmount() - maximumUnits() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -81109,10 +83866,22 @@ private constructor( Tier( checkRequired("unitAmount", unitAmount), maximumUnits, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Tier = apply { + if (validated) { + return@apply + } + + unitAmount() + maximumUnits() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -81385,20 +84154,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -81437,21 +84209,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -81553,10 +84319,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -81689,20 +84467,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -81741,21 +84522,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -81858,10 +84633,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -81995,28 +84782,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -82063,7 +84845,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -82101,65 +84893,100 @@ private constructor( "NewSubscriptionBulkPrice{bulkConfig=$bulkConfig, cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionThresholdTotalAmountPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("threshold_total_amount_config") - @ExcludeMissing - private val thresholdTotalAmountConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val thresholdTotalAmountConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("threshold_total_amount_config") + @ExcludeMissing + thresholdTotalAmountConfig: JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + thresholdTotalAmountConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -82473,35 +85300,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionThresholdTotalAmountPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - thresholdTotalAmountConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -82984,10 +85791,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionThresholdTotalAmountPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + thresholdTotalAmountConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -83220,28 +86053,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ThresholdTotalAmountConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): ThresholdTotalAmountConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -83294,7 +86122,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ThresholdTotalAmountConfig = - ThresholdTotalAmountConfig(additionalProperties.toImmutable()) + ThresholdTotalAmountConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): ThresholdTotalAmountConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -83319,20 +86157,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -83371,21 +86212,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -83487,10 +86322,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -83623,20 +86470,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -83675,21 +86525,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -83792,10 +86636,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -83929,28 +86785,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -83997,7 +86848,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -84035,64 +86896,99 @@ private constructor( "NewSubscriptionThresholdTotalAmountPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, thresholdTotalAmountConfig=$thresholdTotalAmountConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_package_config") - @ExcludeMissing - private val tieredPackageConfig: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredPackageConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_package_config") + @ExcludeMissing + tieredPackageConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredPackageConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -84405,35 +87301,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionTieredPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredPackageConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -84909,10 +87785,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionTieredPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredPackageConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -85145,28 +88047,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredPackageConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TieredPackageConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -85218,7 +88115,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageConfig = - TieredPackageConfig(additionalProperties.toImmutable()) + TieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -85243,20 +88150,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -85295,21 +88205,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -85411,10 +88315,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -85547,20 +88463,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -85599,21 +88518,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -85716,10 +88629,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -85853,28 +88778,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -85921,7 +88841,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -85959,65 +88889,99 @@ private constructor( "NewSubscriptionTieredPackagePrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredPackageConfig=$tieredPackageConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionTieredWithMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_with_minimum_config") - @ExcludeMissing - private val tieredWithMinimumConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredWithMinimumConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_with_minimum_config") + @ExcludeMissing + tieredWithMinimumConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredWithMinimumConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -86331,35 +89295,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionTieredWithMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredWithMinimumConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -86838,10 +89782,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionTieredWithMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredWithMinimumConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -87074,28 +90044,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredWithMinimumConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): TieredWithMinimumConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -87148,7 +90113,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithMinimumConfig = - TieredWithMinimumConfig(additionalProperties.toImmutable()) + TieredWithMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredWithMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -87173,20 +90148,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -87225,21 +90203,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -87341,10 +90313,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -87477,20 +90461,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -87529,21 +90516,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -87646,10 +90627,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -87783,28 +90776,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -87851,7 +90839,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -87889,65 +90887,99 @@ private constructor( "NewSubscriptionTieredWithMinimumPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredWithMinimumConfig=$tieredWithMinimumConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionUnitWithPercentPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("unit_with_percent_config") - @ExcludeMissing - private val unitWithPercentConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val unitWithPercentConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("unit_with_percent_config") + @ExcludeMissing + unitWithPercentConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + unitWithPercentConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -88261,35 +91293,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionUnitWithPercentPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - unitWithPercentConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -88765,10 +91777,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionUnitWithPercentPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + unitWithPercentConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -89001,28 +92039,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitWithPercentConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UnitWithPercentConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -89074,7 +92107,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithPercentConfig = - UnitWithPercentConfig(additionalProperties.toImmutable()) + UnitWithPercentConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): UnitWithPercentConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -89099,20 +92142,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -89151,21 +92197,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -89267,10 +92307,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -89403,20 +92455,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -89455,21 +92510,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -89572,10 +92621,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -89709,28 +92770,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -89777,7 +92833,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -89815,65 +92881,100 @@ private constructor( "NewSubscriptionUnitWithPercentPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, unitWithPercentConfig=$unitWithPercentConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionPackageWithAllocationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("package_with_allocation_config") - @ExcludeMissing - private val packageWithAllocationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val packageWithAllocationConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("package_with_allocation_config") + @ExcludeMissing + packageWithAllocationConfig: JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + packageWithAllocationConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -90187,35 +93288,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionPackageWithAllocationPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - packageWithAllocationConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -90703,10 +93784,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionPackageWithAllocationPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + packageWithAllocationConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -90939,28 +94046,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class PackageWithAllocationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PackageWithAllocationConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -91014,7 +94116,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): PackageWithAllocationConfig = - PackageWithAllocationConfig(additionalProperties.toImmutable()) + PackageWithAllocationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): PackageWithAllocationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -91039,20 +94151,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -91091,21 +94206,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -91207,10 +94316,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -91343,20 +94464,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -91395,21 +94519,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -91512,10 +94630,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -91649,28 +94779,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -91717,7 +94842,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -91755,65 +94890,100 @@ private constructor( "NewSubscriptionPackageWithAllocationPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, packageWithAllocationConfig=$packageWithAllocationConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionTierWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("tiered_with_proration_config") - @ExcludeMissing - private val tieredWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val tieredWithProrationConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("tiered_with_proration_config") + @ExcludeMissing + tieredWithProrationConfig: JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + tieredWithProrationConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -92127,35 +95297,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionTierWithProrationPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - tieredWithProrationConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -92636,10 +95786,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionTierWithProrationPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + tieredWithProrationConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -92872,28 +96048,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TieredWithProrationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): TieredWithProrationConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -92946,7 +96117,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithProrationConfig = - TieredWithProrationConfig(additionalProperties.toImmutable()) + TieredWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TieredWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -92971,20 +96152,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -93023,21 +96207,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -93139,10 +96317,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -93275,20 +96465,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -93327,21 +96520,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -93444,10 +96631,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -93581,28 +96780,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -93649,7 +96843,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -93687,65 +96891,99 @@ private constructor( "NewSubscriptionTierWithProrationPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, tieredWithProrationConfig=$tieredWithProrationConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionUnitWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("unit_with_proration_config") - @ExcludeMissing - private val unitWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val unitWithProrationConfig: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("unit_with_proration_config") + @ExcludeMissing + unitWithProrationConfig: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + unitWithProrationConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -94059,35 +97297,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionUnitWithProrationPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - unitWithProrationConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -94566,10 +97784,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionUnitWithProrationPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + unitWithProrationConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -94802,28 +98046,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class UnitWithProrationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): UnitWithProrationConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -94876,7 +98115,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithProrationConfig = - UnitWithProrationConfig(additionalProperties.toImmutable()) + UnitWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): UnitWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -94901,20 +98150,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -94953,21 +98205,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -95069,10 +98315,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -95205,20 +98463,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -95257,21 +98518,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -95374,10 +98629,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -95511,28 +98778,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -95579,7 +98841,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -95617,65 +98889,99 @@ private constructor( "NewSubscriptionUnitWithProrationPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, unitWithProrationConfig=$unitWithProrationConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionGroupedAllocationPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("grouped_allocation_config") - @ExcludeMissing - private val groupedAllocationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val groupedAllocationConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("grouped_allocation_config") + @ExcludeMissing + groupedAllocationConfig: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + groupedAllocationConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -95989,35 +99295,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionGroupedAllocationPrice = apply { - if (validated) { - return@apply - } - - cadence() - groupedAllocationConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -96496,10 +99782,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionGroupedAllocationPrice = apply { + if (validated) { + return@apply + } + + cadence() + groupedAllocationConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -96631,28 +99943,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedAllocationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedAllocationConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -96705,7 +100012,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedAllocationConfig = - GroupedAllocationConfig(additionalProperties.toImmutable()) + GroupedAllocationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedAllocationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -96831,20 +100148,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -96883,21 +100203,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -96999,10 +100313,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -97135,20 +100461,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -97187,21 +100516,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -97304,10 +100627,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -97441,28 +100776,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -97509,7 +100839,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -97547,66 +100887,101 @@ private constructor( "NewSubscriptionGroupedAllocationPrice{cadence=$cadence, groupedAllocationConfig=$groupedAllocationConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionGroupedWithProratedMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("grouped_with_prorated_minimum_config") - @ExcludeMissing + private val cadence: JsonField, private val groupedWithProratedMinimumConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("grouped_with_prorated_minimum_config") + @ExcludeMissing + groupedWithProratedMinimumConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + groupedWithProratedMinimumConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -97922,35 +101297,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionGroupedWithProratedMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - groupedWithProratedMinimumConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -98450,10 +101805,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionGroupedWithProratedMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + groupedWithProratedMinimumConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -98585,28 +101966,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedWithProratedMinimumConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): GroupedWithProratedMinimumConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -98660,7 +102036,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithProratedMinimumConfig = - GroupedWithProratedMinimumConfig(additionalProperties.toImmutable()) + GroupedWithProratedMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedWithProratedMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -98787,20 +102173,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -98839,21 +102228,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -98955,10 +102338,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -99091,20 +102486,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -99143,21 +102541,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -99260,10 +102652,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -99397,28 +102801,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -99465,7 +102864,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -99503,65 +102912,99 @@ private constructor( "NewSubscriptionGroupedWithProratedMinimumPrice{cadence=$cadence, groupedWithProratedMinimumConfig=$groupedWithProratedMinimumConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionBulkWithProrationPrice - @JsonCreator private constructor( - @JsonProperty("bulk_with_proration_config") - @ExcludeMissing - private val bulkWithProrationConfig: JsonField = - JsonMissing.of(), - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val bulkWithProrationConfig: JsonField, + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("bulk_with_proration_config") + @ExcludeMissing + bulkWithProrationConfig: JsonField = JsonMissing.of(), + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + bulkWithProrationConfig, + cadence, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -99875,35 +103318,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionBulkWithProrationPrice = apply { - if (validated) { - return@apply - } - - bulkWithProrationConfig().validate() - cadence() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -100382,32 +103805,53 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): NewSubscriptionBulkWithProrationPrice = apply { + if (validated) { + return@apply + } + + bulkWithProrationConfig().validate() + cadence() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + class BulkWithProrationConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BulkWithProrationConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -100460,7 +103904,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): BulkWithProrationConfig = - BulkWithProrationConfig(additionalProperties.toImmutable()) + BulkWithProrationConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): BulkWithProrationConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -100717,20 +104171,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -100769,21 +104226,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -100885,10 +104336,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -101021,20 +104484,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -101073,21 +104539,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -101190,10 +104650,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -101327,28 +104799,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -101395,7 +104862,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -101433,66 +104910,102 @@ private constructor( "NewSubscriptionBulkWithProrationPrice{bulkWithProrationConfig=$bulkWithProrationConfig, cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionScalableMatrixWithUnitPricingPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("scalable_matrix_with_unit_pricing_config") - @ExcludeMissing + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, private val scalableMatrixWithUnitPricingConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("scalable_matrix_with_unit_pricing_config") + @ExcludeMissing + scalableMatrixWithUnitPricingConfig: + JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + scalableMatrixWithUnitPricingConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -101809,35 +105322,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionScalableMatrixWithUnitPricingPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - scalableMatrixWithUnitPricingConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -102340,10 +105833,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionScalableMatrixWithUnitPricingPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + scalableMatrixWithUnitPricingConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -102580,28 +106099,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ScalableMatrixWithUnitPricingConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): ScalableMatrixWithUnitPricingConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -102656,7 +106170,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithUnitPricingConfig = - ScalableMatrixWithUnitPricingConfig(additionalProperties.toImmutable()) + ScalableMatrixWithUnitPricingConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): ScalableMatrixWithUnitPricingConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -102681,20 +106205,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -102733,21 +106260,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -102849,10 +106370,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -102985,20 +106518,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -103037,21 +106573,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -103154,10 +106684,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -103291,28 +106833,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -103359,7 +106896,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -103397,66 +106944,102 @@ private constructor( "NewSubscriptionScalableMatrixWithUnitPricingPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, scalableMatrixWithUnitPricingConfig=$scalableMatrixWithUnitPricingConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionScalableMatrixWithTieredPricingPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("scalable_matrix_with_tiered_pricing_config") - @ExcludeMissing + private val cadence: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, private val scalableMatrixWithTieredPricingConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("scalable_matrix_with_tiered_pricing_config") + @ExcludeMissing + scalableMatrixWithTieredPricingConfig: + JsonField = + JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + modelType, + name, + scalableMatrixWithTieredPricingConfig, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -103773,35 +107356,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionScalableMatrixWithTieredPricingPrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - modelType() - name() - scalableMatrixWithTieredPricingConfig().validate() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -104305,10 +107868,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionScalableMatrixWithTieredPricingPrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + modelType() + name() + scalableMatrixWithTieredPricingConfig().validate() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -104545,28 +108134,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class ScalableMatrixWithTieredPricingConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): ScalableMatrixWithTieredPricingConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -104623,10 +108207,20 @@ private constructor( */ fun build(): ScalableMatrixWithTieredPricingConfig = ScalableMatrixWithTieredPricingConfig( - additionalProperties.toImmutable() + additionalProperties.toMutableMap() ) } + private var validated: Boolean = false + + fun validate(): ScalableMatrixWithTieredPricingConfig = apply { + if (validated) { + return@apply + } + + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -104649,20 +108243,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -104701,21 +108298,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -104817,10 +108408,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -104953,20 +108556,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -105005,21 +108611,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -105122,10 +108722,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -105259,28 +108871,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -105327,7 +108934,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -105365,65 +108982,100 @@ private constructor( "NewSubscriptionScalableMatrixWithTieredPricingPrice{cadence=$cadence, itemId=$itemId, modelType=$modelType, name=$name, scalableMatrixWithTieredPricingConfig=$scalableMatrixWithTieredPricingConfig, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionCumulativeGroupedBulkPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("cumulative_grouped_bulk_config") - @ExcludeMissing - private val cumulativeGroupedBulkConfig: JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val cumulativeGroupedBulkConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("cumulative_grouped_bulk_config") + @ExcludeMissing + cumulativeGroupedBulkConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + cumulativeGroupedBulkConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -105737,35 +109389,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionCumulativeGroupedBulkPrice = apply { - if (validated) { - return@apply - } - - cadence() - cumulativeGroupedBulkConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -106253,10 +109885,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionCumulativeGroupedBulkPrice = apply { + if (validated) { + return@apply + } + + cadence() + cumulativeGroupedBulkConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -106388,28 +110046,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class CumulativeGroupedBulkConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): CumulativeGroupedBulkConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -106463,7 +110116,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): CumulativeGroupedBulkConfig = - CumulativeGroupedBulkConfig(additionalProperties.toImmutable()) + CumulativeGroupedBulkConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): CumulativeGroupedBulkConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -106589,20 +110252,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -106641,21 +110307,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -106757,10 +110417,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -106893,20 +110565,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -106945,21 +110620,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -107062,10 +110731,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -107199,28 +110880,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -107267,7 +110943,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -107305,65 +110991,100 @@ private constructor( "NewSubscriptionCumulativeGroupedBulkPrice{cadence=$cadence, cumulativeGroupedBulkConfig=$cumulativeGroupedBulkConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionMaxGroupTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("max_group_tiered_package_config") - @ExcludeMissing - private val maxGroupTieredPackageConfig: JsonField = - JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val maxGroupTieredPackageConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("max_group_tiered_package_config") + @ExcludeMissing + maxGroupTieredPackageConfig: JsonField = + JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + maxGroupTieredPackageConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -107677,35 +111398,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionMaxGroupTieredPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - maxGroupTieredPackageConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -108193,10 +111894,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionMaxGroupTieredPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + maxGroupTieredPackageConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -108328,28 +112055,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MaxGroupTieredPackageConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MaxGroupTieredPackageConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -108403,7 +112125,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MaxGroupTieredPackageConfig = - MaxGroupTieredPackageConfig(additionalProperties.toImmutable()) + MaxGroupTieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): MaxGroupTieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -108529,20 +112261,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -108581,21 +112316,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -108697,10 +112426,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -108833,20 +112574,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -108885,21 +112629,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -109002,10 +112740,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -109139,28 +112889,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -109207,7 +112952,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -109245,66 +113000,101 @@ private constructor( "NewSubscriptionMaxGroupTieredPackagePrice{cadence=$cadence, itemId=$itemId, maxGroupTieredPackageConfig=$maxGroupTieredPackageConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionGroupedWithMeteredMinimumPrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("grouped_with_metered_minimum_config") - @ExcludeMissing + private val cadence: JsonField, private val groupedWithMeteredMinimumConfig: - JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("grouped_with_metered_minimum_config") + @ExcludeMissing + groupedWithMeteredMinimumConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + groupedWithMeteredMinimumConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -109620,35 +113410,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionGroupedWithMeteredMinimumPrice = apply { - if (validated) { - return@apply - } - - cadence() - groupedWithMeteredMinimumConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -110147,10 +113917,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionGroupedWithMeteredMinimumPrice = apply { + if (validated) { + return@apply + } + + cadence() + groupedWithMeteredMinimumConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -110282,28 +114078,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedWithMeteredMinimumConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedWithMeteredMinimumConfig = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -110357,7 +114148,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithMeteredMinimumConfig = - GroupedWithMeteredMinimumConfig(additionalProperties.toImmutable()) + GroupedWithMeteredMinimumConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedWithMeteredMinimumConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -110484,20 +114285,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -110536,21 +114340,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -110652,10 +114450,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -110788,20 +114598,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -110840,21 +114653,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -110957,10 +114764,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -111094,28 +114913,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -111162,7 +114976,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -111200,65 +115024,100 @@ private constructor( "NewSubscriptionGroupedWithMeteredMinimumPrice{cadence=$cadence, groupedWithMeteredMinimumConfig=$groupedWithMeteredMinimumConfig, itemId=$itemId, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionMatrixWithDisplayNamePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("matrix_with_display_name_config") - @ExcludeMissing - private val matrixWithDisplayNameConfig: JsonField = - JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val itemId: JsonField, + private val matrixWithDisplayNameConfig: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("matrix_with_display_name_config") + @ExcludeMissing + matrixWithDisplayNameConfig: JsonField = + JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + itemId, + matrixWithDisplayNameConfig, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -111572,35 +115431,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionMatrixWithDisplayNamePrice = apply { - if (validated) { - return@apply - } - - cadence() - itemId() - matrixWithDisplayNameConfig().validate() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -112088,10 +115927,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionMatrixWithDisplayNamePrice = apply { + if (validated) { + return@apply + } + + cadence() + itemId() + matrixWithDisplayNameConfig().validate() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -112223,28 +116088,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class MatrixWithDisplayNameConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): MatrixWithDisplayNameConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -112298,7 +116158,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MatrixWithDisplayNameConfig = - MatrixWithDisplayNameConfig(additionalProperties.toImmutable()) + MatrixWithDisplayNameConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): MatrixWithDisplayNameConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -112424,20 +116294,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -112476,21 +116349,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -112592,10 +116459,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -112728,20 +116607,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -112780,21 +116662,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -112897,10 +116773,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -113034,28 +116922,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + @JsonCreator private constructor() : this(mutableMapOf()) - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -113102,7 +116985,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -113140,65 +117033,100 @@ private constructor( "NewSubscriptionMatrixWithDisplayNamePrice{cadence=$cadence, itemId=$itemId, matrixWithDisplayNameConfig=$matrixWithDisplayNameConfig, modelType=$modelType, name=$name, billableMetricId=$billableMetricId, billedInAdvance=$billedInAdvance, billingCycleConfiguration=$billingCycleConfiguration, conversionRate=$conversionRate, currency=$currency, externalPriceId=$externalPriceId, fixedPriceQuantity=$fixedPriceQuantity, invoiceGroupingKey=$invoiceGroupingKey, invoicingCycleConfiguration=$invoicingCycleConfiguration, metadata=$metadata, referenceId=$referenceId, additionalProperties=$additionalProperties}" } - @NoAutoDetect class NewSubscriptionGroupedTieredPackagePrice - @JsonCreator private constructor( - @JsonProperty("cadence") - @ExcludeMissing - private val cadence: JsonField = JsonMissing.of(), - @JsonProperty("grouped_tiered_package_config") - @ExcludeMissing - private val groupedTieredPackageConfig: JsonField = - JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("model_type") - @ExcludeMissing - private val modelType: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonProperty("billable_metric_id") - @ExcludeMissing - private val billableMetricId: JsonField = JsonMissing.of(), - @JsonProperty("billed_in_advance") - @ExcludeMissing - private val billedInAdvance: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_configuration") - @ExcludeMissing - private val billingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("conversion_rate") - @ExcludeMissing - private val conversionRate: JsonField = JsonMissing.of(), - @JsonProperty("currency") - @ExcludeMissing - private val currency: JsonField = JsonMissing.of(), - @JsonProperty("external_price_id") - @ExcludeMissing - private val externalPriceId: JsonField = JsonMissing.of(), - @JsonProperty("fixed_price_quantity") - @ExcludeMissing - private val fixedPriceQuantity: JsonField = JsonMissing.of(), - @JsonProperty("invoice_grouping_key") - @ExcludeMissing - private val invoiceGroupingKey: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_cycle_configuration") - @ExcludeMissing - private val invoicingCycleConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("reference_id") - @ExcludeMissing - private val referenceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val cadence: JsonField, + private val groupedTieredPackageConfig: JsonField, + private val itemId: JsonField, + private val modelType: JsonField, + private val name: JsonField, + private val billableMetricId: JsonField, + private val billedInAdvance: JsonField, + private val billingCycleConfiguration: JsonField, + private val conversionRate: JsonField, + private val currency: JsonField, + private val externalPriceId: JsonField, + private val fixedPriceQuantity: JsonField, + private val invoiceGroupingKey: JsonField, + private val invoicingCycleConfiguration: JsonField, + private val metadata: JsonField, + private val referenceId: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("cadence") + @ExcludeMissing + cadence: JsonField = JsonMissing.of(), + @JsonProperty("grouped_tiered_package_config") + @ExcludeMissing + groupedTieredPackageConfig: JsonField = + JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("model_type") + @ExcludeMissing + modelType: JsonField = JsonMissing.of(), + @JsonProperty("name") + @ExcludeMissing + name: JsonField = JsonMissing.of(), + @JsonProperty("billable_metric_id") + @ExcludeMissing + billableMetricId: JsonField = JsonMissing.of(), + @JsonProperty("billed_in_advance") + @ExcludeMissing + billedInAdvance: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_configuration") + @ExcludeMissing + billingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("conversion_rate") + @ExcludeMissing + conversionRate: JsonField = JsonMissing.of(), + @JsonProperty("currency") + @ExcludeMissing + currency: JsonField = JsonMissing.of(), + @JsonProperty("external_price_id") + @ExcludeMissing + externalPriceId: JsonField = JsonMissing.of(), + @JsonProperty("fixed_price_quantity") + @ExcludeMissing + fixedPriceQuantity: JsonField = JsonMissing.of(), + @JsonProperty("invoice_grouping_key") + @ExcludeMissing + invoiceGroupingKey: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_cycle_configuration") + @ExcludeMissing + invoicingCycleConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("reference_id") + @ExcludeMissing + referenceId: JsonField = JsonMissing.of(), + ) : this( + cadence, + groupedTieredPackageConfig, + itemId, + modelType, + name, + billableMetricId, + billedInAdvance, + billingCycleConfiguration, + conversionRate, + currency, + externalPriceId, + fixedPriceQuantity, + invoiceGroupingKey, + invoicingCycleConfiguration, + metadata, + referenceId, + mutableMapOf(), + ) + /** * The cadence to bill for this price on. * @@ -113512,35 +117440,15 @@ private constructor( @ExcludeMissing fun _referenceId(): JsonField = referenceId + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): NewSubscriptionGroupedTieredPackagePrice = apply { - if (validated) { - return@apply - } - - cadence() - groupedTieredPackageConfig().validate() - itemId() - modelType() - name() - billableMetricId() - billedInAdvance() - billingCycleConfiguration().ifPresent { it.validate() } - conversionRate() - currency() - externalPriceId() - fixedPriceQuantity() - invoiceGroupingKey() - invoicingCycleConfiguration().ifPresent { it.validate() } - metadata().ifPresent { it.validate() } - referenceId() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -114023,10 +117931,36 @@ private constructor( invoicingCycleConfiguration, metadata, referenceId, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): NewSubscriptionGroupedTieredPackagePrice = apply { + if (validated) { + return@apply + } + + cadence() + groupedTieredPackageConfig().validate() + itemId() + modelType() + name() + billableMetricId() + billedInAdvance() + billingCycleConfiguration().ifPresent { it.validate() } + conversionRate() + currency() + externalPriceId() + fixedPriceQuantity() + invoiceGroupingKey() + invoicingCycleConfiguration().ifPresent { it.validate() } + metadata().ifPresent { it.validate() } + referenceId() + validated = true + } + /** The cadence to bill for this price on. */ class Cadence @JsonCreator @@ -114158,28 +118092,23 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class GroupedTieredPackageConfig - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false + @JsonCreator private constructor() : this(mutableMapOf()) - fun validate(): GroupedTieredPackageConfig = apply { - if (validated) { - return@apply - } - - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -114232,7 +118161,17 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredPackageConfig = - GroupedTieredPackageConfig(additionalProperties.toImmutable()) + GroupedTieredPackageConfig(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): GroupedTieredPackageConfig = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -114358,20 +118297,23 @@ private constructor( * For custom cadence: specifies the duration of the billing period in days or * months. */ - @NoAutoDetect class BillingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -114410,21 +118352,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -114526,10 +118462,22 @@ private constructor( BillingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -114662,20 +118610,23 @@ private constructor( * Within each billing cycle, specifies the cadence at which invoices are produced. * If unspecified, a single invoice is produced per billing cycle. */ - @NoAutoDetect class InvoicingCycleConfiguration - @JsonCreator private constructor( - @JsonProperty("duration") - @ExcludeMissing - private val duration: JsonField = JsonMissing.of(), - @JsonProperty("duration_unit") - @ExcludeMissing - private val durationUnit: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val duration: JsonField, + private val durationUnit: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("duration") + @ExcludeMissing + duration: JsonField = JsonMissing.of(), + @JsonProperty("duration_unit") + @ExcludeMissing + durationUnit: JsonField = JsonMissing.of(), + ) : this(duration, durationUnit, mutableMapOf()) + /** * The duration of the billing period. * @@ -114714,21 +118665,15 @@ private constructor( @ExcludeMissing fun _durationUnit(): JsonField = durationUnit + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): InvoicingCycleConfiguration = apply { - if (validated) { - return@apply - } - - duration() - durationUnit() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -114831,10 +118776,22 @@ private constructor( InvoicingCycleConfiguration( checkRequired("duration", duration), checkRequired("durationUnit", durationUnit), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): InvoicingCycleConfiguration = apply { + if (validated) { + return@apply + } + + duration() + durationUnit() + validated = true + } + /** The unit of billing period duration. */ class DurationUnit @JsonCreator @@ -114968,28 +118925,23 @@ private constructor( * by setting the value to `null`, and the entire metadata mapping can be cleared by * setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator private constructor( - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() + private val additionalProperties: MutableMap ) { - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } + @JsonCreator private constructor() : this(mutableMapOf()) - validated = true + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + fun toBuilder() = Builder().from(this) companion object { @@ -115036,7 +118988,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeResponse.kt index 5092560c..df81b42a 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeResponse.kt @@ -20,98 +20,142 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class SubscriptionSchedulePlanChangeResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("active_plan_phase_order") - @ExcludeMissing - private val activePlanPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_intervals") - @ExcludeMissing - private val adjustmentIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_anchor_configuration") - @ExcludeMissing - private val billingCycleAnchorConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("default_invoice_memo") - @ExcludeMissing - private val defaultInvoiceMemo: JsonField = JsonMissing.of(), - @JsonProperty("discount_intervals") - @ExcludeMissing - private val discountIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_schedule") - @ExcludeMissing - private val fixedFeeQuantitySchedule: JsonField> = - JsonMissing.of(), - @JsonProperty("invoicing_threshold") - @ExcludeMissing - private val invoicingThreshold: JsonField = JsonMissing.of(), - @JsonProperty("maximum_intervals") - @ExcludeMissing - private val maximumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum_intervals") - @ExcludeMissing - private val minimumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("plan") @ExcludeMissing private val plan: JsonField = JsonMissing.of(), - @JsonProperty("price_intervals") - @ExcludeMissing - private val priceIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("redeemed_coupon") - @ExcludeMissing - private val redeemedCoupon: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("trial_info") - @ExcludeMissing - private val trialInfo: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val activePlanPhaseOrder: JsonField, + private val adjustmentIntervals: JsonField>, + private val autoCollection: JsonField, + private val billingCycleAnchorConfiguration: JsonField, + private val billingCycleDay: JsonField, + private val createdAt: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val customer: JsonField, + private val defaultInvoiceMemo: JsonField, + private val discountIntervals: JsonField>, + private val endDate: JsonField, + private val fixedFeeQuantitySchedule: JsonField>, + private val invoicingThreshold: JsonField, + private val maximumIntervals: JsonField>, + private val metadata: JsonField, + private val minimumIntervals: JsonField>, + private val netTerms: JsonField, + private val plan: JsonField, + private val priceIntervals: JsonField>, + private val redeemedCoupon: JsonField, + private val startDate: JsonField, + private val status: JsonField, + private val trialInfo: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("active_plan_phase_order") + @ExcludeMissing + activePlanPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_intervals") + @ExcludeMissing + adjustmentIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_anchor_configuration") + @ExcludeMissing + billingCycleAnchorConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("customer") @ExcludeMissing customer: JsonField = JsonMissing.of(), + @JsonProperty("default_invoice_memo") + @ExcludeMissing + defaultInvoiceMemo: JsonField = JsonMissing.of(), + @JsonProperty("discount_intervals") + @ExcludeMissing + discountIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_schedule") + @ExcludeMissing + fixedFeeQuantitySchedule: JsonField> = JsonMissing.of(), + @JsonProperty("invoicing_threshold") + @ExcludeMissing + invoicingThreshold: JsonField = JsonMissing.of(), + @JsonProperty("maximum_intervals") + @ExcludeMissing + maximumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("metadata") @ExcludeMissing metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum_intervals") + @ExcludeMissing + minimumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("plan") @ExcludeMissing plan: JsonField = JsonMissing.of(), + @JsonProperty("price_intervals") + @ExcludeMissing + priceIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("redeemed_coupon") + @ExcludeMissing + redeemedCoupon: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + @JsonProperty("trial_info") + @ExcludeMissing + trialInfo: JsonField = JsonMissing.of(), + ) : this( + id, + activePlanPhaseOrder, + adjustmentIntervals, + autoCollection, + billingCycleAnchorConfiguration, + billingCycleDay, + createdAt, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + customer, + defaultInvoiceMemo, + discountIntervals, + endDate, + fixedFeeQuantitySchedule, + invoicingThreshold, + maximumIntervals, + metadata, + minimumIntervals, + netTerms, + plan, + priceIntervals, + redeemedCoupon, + startDate, + status, + trialInfo, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -566,44 +610,15 @@ private constructor( */ @JsonProperty("trial_info") @ExcludeMissing fun _trialInfo(): JsonField = trialInfo + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): SubscriptionSchedulePlanChangeResponse = apply { - if (validated) { - return@apply - } - - id() - activePlanPhaseOrder() - adjustmentIntervals().forEach { it.validate() } - autoCollection() - billingCycleAnchorConfiguration().validate() - billingCycleDay() - createdAt() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - customer().validate() - defaultInvoiceMemo() - discountIntervals().forEach { it.validate() } - endDate() - fixedFeeQuantitySchedule().forEach { it.validate() } - invoicingThreshold() - maximumIntervals().forEach { it.validate() } - metadata().validate() - minimumIntervals().forEach { it.validate() } - netTerms() - plan().validate() - priceIntervals().forEach { it.validate() } - redeemedCoupon().ifPresent { it.validate() } - startDate() - status() - trialInfo().validate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1341,31 +1356,72 @@ private constructor( checkRequired("startDate", startDate), checkRequired("status", status), checkRequired("trialInfo", trialInfo), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): SubscriptionSchedulePlanChangeResponse = apply { + if (validated) { + return@apply + } + + id() + activePlanPhaseOrder() + adjustmentIntervals().forEach { it.validate() } + autoCollection() + billingCycleAnchorConfiguration().validate() + billingCycleDay() + createdAt() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + customer().validate() + defaultInvoiceMemo() + discountIntervals().forEach { it.validate() } + endDate() + fixedFeeQuantitySchedule().forEach { it.validate() } + invoicingThreshold() + maximumIntervals().forEach { it.validate() } + metadata().validate() + minimumIntervals().forEach { it.validate() } + netTerms() + plan().validate() + priceIntervals().forEach { it.validate() } + redeemedCoupon().ifPresent { it.validate() } + startDate() + status() + trialInfo().validate() + validated = true + } + class AdjustmentInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment") - @ExcludeMissing - private val adjustment: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustment: JsonField, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment") + @ExcludeMissing + adjustment: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(id, adjustment, appliesToPriceIntervalIds, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -1448,24 +1504,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AdjustmentInterval = apply { - if (validated) { - return@apply - } - - id() - adjustment().validate() - appliesToPriceIntervalIds() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1669,10 +1716,25 @@ private constructor( }, checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AdjustmentInterval = apply { + if (validated) { + return@apply + } + + id() + adjustment().validate() + appliesToPriceIntervalIds() + endDate() + startDate() + validated = true + } + @JsonDeserialize(using = Adjustment.Deserializer::class) @JsonSerialize(using = Adjustment.Serializer::class) class Adjustment @@ -1961,35 +2023,50 @@ private constructor( } } - @NoAutoDetect class PlanPhaseUsageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + usageDiscount, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2116,26 +2193,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseUsageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2373,10 +2439,27 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseUsageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + usageDiscount() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2497,35 +2580,50 @@ private constructor( "PlanPhaseUsageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, usageDiscount=$usageDiscount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseAmountDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amountDiscount, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2652,26 +2750,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseAmountDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amountDiscount() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2909,10 +2996,27 @@ private constructor( checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseAmountDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amountDiscount() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3033,35 +3137,50 @@ private constructor( "PlanPhaseAmountDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhasePercentageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val percentageDiscount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + percentageDiscount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3189,26 +3308,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhasePercentageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - percentageDiscount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3448,10 +3556,27 @@ private constructor( checkRequired("percentageDiscount", percentageDiscount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhasePercentageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + percentageDiscount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3572,38 +3697,55 @@ private constructor( "PlanPhasePercentageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, percentageDiscount=$percentageDiscount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMinimumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val itemId: JsonField, + private val minimumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + itemId, + minimumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3747,27 +3889,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMinimumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - itemId() - minimumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4021,10 +4151,28 @@ private constructor( checkRequired("minimumAmount", minimumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMinimumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + itemId() + minimumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4145,35 +4293,50 @@ private constructor( "PlanPhaseMinimumAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, itemId=$itemId, minimumAmount=$minimumAmount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMaximumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val maximumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + maximumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4300,26 +4463,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMaximumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - maximumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4556,10 +4708,27 @@ private constructor( checkRequired("maximumAmount", maximumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMaximumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + maximumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4699,19 +4868,21 @@ private constructor( "AdjustmentInterval{id=$id, adjustment=$adjustment, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleAnchorConfiguration - @JsonCreator private constructor( - @JsonProperty("day") @ExcludeMissing private val day: JsonField = JsonMissing.of(), - @JsonProperty("month") - @ExcludeMissing - private val month: JsonField = JsonMissing.of(), - @JsonProperty("year") @ExcludeMissing private val year: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val day: JsonField, + private val month: JsonField, + private val year: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("day") @ExcludeMissing day: JsonField = JsonMissing.of(), + @JsonProperty("month") @ExcludeMissing month: JsonField = JsonMissing.of(), + @JsonProperty("year") @ExcludeMissing year: JsonField = JsonMissing.of(), + ) : this(day, month, year, mutableMapOf()) + /** * The day of the month on which the billing cycle is anchored. If the maximum number of * days in a month is greater than this value, the last day of the month is the billing @@ -4762,22 +4933,15 @@ private constructor( */ @JsonProperty("year") @ExcludeMissing fun _year(): JsonField = year + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleAnchorConfiguration = apply { - if (validated) { - return@apply - } - - day() - month() - year() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4916,10 +5080,23 @@ private constructor( checkRequired("day", day), month, year, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleAnchorConfiguration = apply { + if (validated) { + return@apply + } + + day() + month() + year() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5115,32 +5292,47 @@ private constructor( } } - @NoAutoDetect class AmountDiscountInterval - @JsonCreator private constructor( - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + amountDiscount, + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + mutableMapOf(), + ) + /** * Only available if discount_type is `amount`. * @@ -5254,25 +5446,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AmountDiscountInterval = apply { - if (validated) { - return@apply - } - - amountDiscount() - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5486,10 +5668,26 @@ private constructor( checkRequired("discountType", discountType), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AmountDiscountInterval = apply { + if (validated) { + return@apply + } + + amountDiscount() + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -5608,32 +5806,47 @@ private constructor( "AmountDiscountInterval{amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PercentageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val percentageDiscount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + percentageDiscount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -5747,25 +5960,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PercentageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - percentageDiscount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5983,10 +6186,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("percentageDiscount", percentageDiscount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PercentageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + percentageDiscount() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6105,32 +6324,47 @@ private constructor( "PercentageDiscountInterval{appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, percentageDiscount=$percentageDiscount, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class UsageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + usageDiscount, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -6245,25 +6479,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UsageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6479,10 +6703,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("startDate", startDate), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UsageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + usageDiscount() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6602,26 +6842,29 @@ private constructor( } } - @NoAutoDetect class FixedFeeQuantitySchedule - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(endDate, priceId, quantity, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -6679,23 +6922,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantitySchedule = apply { - if (validated) { - return@apply - } - - endDate() - priceId() - quantity() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6822,10 +7057,24 @@ private constructor( checkRequired("priceId", priceId), checkRequired("quantity", quantity), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantitySchedule = apply { + if (validated) { + return@apply + } + + endDate() + priceId() + quantity() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6844,29 +7093,42 @@ private constructor( "FixedFeeQuantitySchedule{endDate=$endDate, priceId=$priceId, quantity=$quantity, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MaximumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val maximumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + maximumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this maximum interval applies to. * @@ -6959,24 +7221,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MaximumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - maximumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7164,10 +7417,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("maximumAmount", maximumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MaximumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + maximumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7191,27 +7459,20 @@ private constructor( * dictionary. Individual keys can be removed by setting the value to `null`, and the entire * metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7255,7 +7516,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -7275,29 +7546,42 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class MinimumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val minimumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + minimumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this minimum interval applies to. * @@ -7390,24 +7674,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MinimumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - minimumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7595,10 +7870,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("minimumAmount", minimumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MinimumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + minimumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7621,43 +7911,62 @@ private constructor( * The Price Interval resource represents a period of time for which a price will bill on a * subscription. A subscription’s price intervals define its billing behavior. */ - @NoAutoDetect class PriceInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("filter") - @ExcludeMissing - private val filter: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_transitions") - @ExcludeMissing - private val fixedFeeQuantityTransitions: JsonField> = - JsonMissing.of(), - @JsonProperty("price") - @ExcludeMissing - private val price: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_customer_ids") - @ExcludeMissing - private val usageCustomerIds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billingCycleDay: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val endDate: JsonField, + private val filter: JsonField, + private val fixedFeeQuantityTransitions: JsonField>, + private val price: JsonField, + private val startDate: JsonField, + private val usageCustomerIds: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("filter") @ExcludeMissing filter: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_transitions") + @ExcludeMissing + fixedFeeQuantityTransitions: JsonField> = + JsonMissing.of(), + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_customer_ids") + @ExcludeMissing + usageCustomerIds: JsonField> = JsonMissing.of(), + ) : this( + id, + billingCycleDay, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + endDate, + filter, + fixedFeeQuantityTransitions, + price, + startDate, + usageCustomerIds, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -7855,29 +8164,15 @@ private constructor( @ExcludeMissing fun _usageCustomerIds(): JsonField> = usageCustomerIds + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PriceInterval = apply { - if (validated) { - return@apply - } - - id() - billingCycleDay() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - endDate() - filter() - fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } - price().validate() - startDate() - usageCustomerIds() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8362,27 +8657,51 @@ private constructor( checkRequired("price", price), checkRequired("startDate", startDate), checkRequired("usageCustomerIds", usageCustomerIds).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): PriceInterval = apply { + if (validated) { + return@apply + } + + id() + billingCycleDay() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + endDate() + filter() + fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } + price().validate() + startDate() + usageCustomerIds() + validated = true + } + class FixedFeeQuantityTransition - @JsonCreator private constructor( - @JsonProperty("effective_date") - @ExcludeMissing - private val effectiveDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val effectiveDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("effective_date") + @ExcludeMissing + effectiveDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") + @ExcludeMissing + priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + ) : this(effectiveDate, priceId, quantity, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -8429,22 +8748,15 @@ private constructor( */ @JsonProperty("quantity") @ExcludeMissing fun _quantity(): JsonField = quantity + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantityTransition = apply { - if (validated) { - return@apply - } - - effectiveDate() - priceId() - quantity() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8558,10 +8870,23 @@ private constructor( checkRequired("effectiveDate", effectiveDate), checkRequired("priceId", priceId), checkRequired("quantity", quantity), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantityTransition = apply { + if (validated) { + return@apply + } + + effectiveDate() + priceId() + quantity() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8598,23 +8923,27 @@ private constructor( "PriceInterval{id=$id, billingCycleDay=$billingCycleDay, currentBillingPeriodEndDate=$currentBillingPeriodEndDate, currentBillingPeriodStartDate=$currentBillingPeriodStartDate, endDate=$endDate, filter=$filter, fixedFeeQuantityTransitions=$fixedFeeQuantityTransitions, price=$price, startDate=$startDate, usageCustomerIds=$usageCustomerIds, additionalProperties=$additionalProperties}" } - @NoAutoDetect class RedeemedCoupon - @JsonCreator private constructor( - @JsonProperty("coupon_id") - @ExcludeMissing - private val couponId: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val couponId: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("coupon_id") + @ExcludeMissing + couponId: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(couponId, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -8659,22 +8988,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): RedeemedCoupon = apply { - if (validated) { - return@apply - } - - couponId() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8785,10 +9107,23 @@ private constructor( checkRequired("couponId", couponId), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): RedeemedCoupon = apply { + if (validated) { + return@apply + } + + couponId() + endDate() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8910,17 +9245,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TrialInfo - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of() + ) : this(endDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -8937,20 +9274,15 @@ private constructor( @ExcludeMissing fun _endDate(): JsonField = endDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TrialInfo = apply { - if (validated) { - return@apply - } - - endDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9025,7 +9357,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): TrialInfo = - TrialInfo(checkRequired("endDate", endDate), additionalProperties.toImmutable()) + TrialInfo(checkRequired("endDate", endDate), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TrialInfo = apply { + if (validated) { + return@apply + } + + endDate() + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionTriggerPhaseParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionTriggerPhaseParams.kt index 8c8f785f..1b7cbb38 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionTriggerPhaseParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionTriggerPhaseParams.kt @@ -10,15 +10,13 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.LocalDate +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -74,215 +72,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - fun _pathParam(index: Int): String = - when (index) { - 0 -> subscriptionId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("allow_invoice_credit_or_void") - @ExcludeMissing - private val allowInvoiceCreditOrVoid: JsonField = JsonMissing.of(), - @JsonProperty("effective_date") - @ExcludeMissing - private val effectiveDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * If false, this request will fail if it would void an issued invoice or create a credit - * note. Consider using this as a safety mechanism if you do not expect existing invoices to - * be changed. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun allowInvoiceCreditOrVoid(): Optional = - Optional.ofNullable( - allowInvoiceCreditOrVoid.getNullable("allow_invoice_credit_or_void") - ) - - /** - * The date on which the phase change should take effect. If not provided, defaults to today - * in the customer's timezone. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun effectiveDate(): Optional = - Optional.ofNullable(effectiveDate.getNullable("effective_date")) - - /** - * Returns the raw JSON value of [allowInvoiceCreditOrVoid]. - * - * Unlike [allowInvoiceCreditOrVoid], this method doesn't throw if the JSON field has an - * unexpected type. - */ - @JsonProperty("allow_invoice_credit_or_void") - @ExcludeMissing - fun _allowInvoiceCreditOrVoid(): JsonField = allowInvoiceCreditOrVoid - - /** - * Returns the raw JSON value of [effectiveDate]. - * - * Unlike [effectiveDate], this method doesn't throw if the JSON field has an unexpected - * type. - */ - @JsonProperty("effective_date") - @ExcludeMissing - fun _effectiveDate(): JsonField = effectiveDate - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - allowInvoiceCreditOrVoid() - effectiveDate() - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** Returns a mutable builder for constructing an instance of [Body]. */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var allowInvoiceCreditOrVoid: JsonField = JsonMissing.of() - private var effectiveDate: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - allowInvoiceCreditOrVoid = body.allowInvoiceCreditOrVoid - effectiveDate = body.effectiveDate - additionalProperties = body.additionalProperties.toMutableMap() - } - - /** - * If false, this request will fail if it would void an issued invoice or create a - * credit note. Consider using this as a safety mechanism if you do not expect existing - * invoices to be changed. - */ - fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Boolean?) = - allowInvoiceCreditOrVoid(JsonField.ofNullable(allowInvoiceCreditOrVoid)) - - /** - * Alias for [Builder.allowInvoiceCreditOrVoid]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Boolean) = - allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid as Boolean?) - - /** - * Alias for calling [Builder.allowInvoiceCreditOrVoid] with - * `allowInvoiceCreditOrVoid.orElse(null)`. - */ - fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Optional) = - allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid.getOrNull()) - - /** - * Sets [Builder.allowInvoiceCreditOrVoid] to an arbitrary JSON value. - * - * You should usually call [Builder.allowInvoiceCreditOrVoid] with a well-typed - * [Boolean] value instead. This method is primarily for setting the field to an - * undocumented or not yet supported value. - */ - fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: JsonField) = apply { - this.allowInvoiceCreditOrVoid = allowInvoiceCreditOrVoid - } - - /** - * The date on which the phase change should take effect. If not provided, defaults to - * today in the customer's timezone. - */ - fun effectiveDate(effectiveDate: LocalDate?) = - effectiveDate(JsonField.ofNullable(effectiveDate)) - - /** Alias for calling [Builder.effectiveDate] with `effectiveDate.orElse(null)`. */ - fun effectiveDate(effectiveDate: Optional) = - effectiveDate(effectiveDate.getOrNull()) - - /** - * Sets [Builder.effectiveDate] to an arbitrary JSON value. - * - * You should usually call [Builder.effectiveDate] with a well-typed [LocalDate] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun effectiveDate(effectiveDate: JsonField) = apply { - this.effectiveDate = effectiveDate - } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - */ - fun build(): Body = - Body(allowInvoiceCreditOrVoid, effectiveDate, additionalProperties.toImmutable()) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && allowInvoiceCreditOrVoid == other.allowInvoiceCreditOrVoid && effectiveDate == other.effectiveDate && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(allowInvoiceCreditOrVoid, effectiveDate, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{allowInvoiceCreditOrVoid=$allowInvoiceCreditOrVoid, effectiveDate=$effectiveDate, additionalProperties=$additionalProperties}" - } - fun toBuilder() = Builder().from(this) companion object { @@ -300,7 +89,6 @@ private constructor( } /** A builder for [SubscriptionTriggerPhaseParams]. */ - @NoAutoDetect class Builder internal constructor() { private var subscriptionId: String? = null @@ -512,6 +300,224 @@ private constructor( ) } + @JvmSynthetic internal fun _body(): Body = body + + fun _pathParam(index: Int): String = + when (index) { + 0 -> subscriptionId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body + private constructor( + private val allowInvoiceCreditOrVoid: JsonField, + private val effectiveDate: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("allow_invoice_credit_or_void") + @ExcludeMissing + allowInvoiceCreditOrVoid: JsonField = JsonMissing.of(), + @JsonProperty("effective_date") + @ExcludeMissing + effectiveDate: JsonField = JsonMissing.of(), + ) : this(allowInvoiceCreditOrVoid, effectiveDate, mutableMapOf()) + + /** + * If false, this request will fail if it would void an issued invoice or create a credit + * note. Consider using this as a safety mechanism if you do not expect existing invoices to + * be changed. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun allowInvoiceCreditOrVoid(): Optional = + Optional.ofNullable( + allowInvoiceCreditOrVoid.getNullable("allow_invoice_credit_or_void") + ) + + /** + * The date on which the phase change should take effect. If not provided, defaults to today + * in the customer's timezone. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun effectiveDate(): Optional = + Optional.ofNullable(effectiveDate.getNullable("effective_date")) + + /** + * Returns the raw JSON value of [allowInvoiceCreditOrVoid]. + * + * Unlike [allowInvoiceCreditOrVoid], this method doesn't throw if the JSON field has an + * unexpected type. + */ + @JsonProperty("allow_invoice_credit_or_void") + @ExcludeMissing + fun _allowInvoiceCreditOrVoid(): JsonField = allowInvoiceCreditOrVoid + + /** + * Returns the raw JSON value of [effectiveDate]. + * + * Unlike [effectiveDate], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("effective_date") + @ExcludeMissing + fun _effectiveDate(): JsonField = effectiveDate + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** Returns a mutable builder for constructing an instance of [Body]. */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var allowInvoiceCreditOrVoid: JsonField = JsonMissing.of() + private var effectiveDate: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + allowInvoiceCreditOrVoid = body.allowInvoiceCreditOrVoid + effectiveDate = body.effectiveDate + additionalProperties = body.additionalProperties.toMutableMap() + } + + /** + * If false, this request will fail if it would void an issued invoice or create a + * credit note. Consider using this as a safety mechanism if you do not expect existing + * invoices to be changed. + */ + fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Boolean?) = + allowInvoiceCreditOrVoid(JsonField.ofNullable(allowInvoiceCreditOrVoid)) + + /** + * Alias for [Builder.allowInvoiceCreditOrVoid]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Boolean) = + allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid as Boolean?) + + /** + * Alias for calling [Builder.allowInvoiceCreditOrVoid] with + * `allowInvoiceCreditOrVoid.orElse(null)`. + */ + fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Optional) = + allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid.getOrNull()) + + /** + * Sets [Builder.allowInvoiceCreditOrVoid] to an arbitrary JSON value. + * + * You should usually call [Builder.allowInvoiceCreditOrVoid] with a well-typed + * [Boolean] value instead. This method is primarily for setting the field to an + * undocumented or not yet supported value. + */ + fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: JsonField) = apply { + this.allowInvoiceCreditOrVoid = allowInvoiceCreditOrVoid + } + + /** + * The date on which the phase change should take effect. If not provided, defaults to + * today in the customer's timezone. + */ + fun effectiveDate(effectiveDate: LocalDate?) = + effectiveDate(JsonField.ofNullable(effectiveDate)) + + /** Alias for calling [Builder.effectiveDate] with `effectiveDate.orElse(null)`. */ + fun effectiveDate(effectiveDate: Optional) = + effectiveDate(effectiveDate.getOrNull()) + + /** + * Sets [Builder.effectiveDate] to an arbitrary JSON value. + * + * You should usually call [Builder.effectiveDate] with a well-typed [LocalDate] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun effectiveDate(effectiveDate: JsonField) = apply { + this.effectiveDate = effectiveDate + } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + */ + fun build(): Body = + Body(allowInvoiceCreditOrVoid, effectiveDate, additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Body = apply { + if (validated) { + return@apply + } + + allowInvoiceCreditOrVoid() + effectiveDate() + validated = true + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Body && allowInvoiceCreditOrVoid == other.allowInvoiceCreditOrVoid && effectiveDate == other.effectiveDate && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(allowInvoiceCreditOrVoid, effectiveDate, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{allowInvoiceCreditOrVoid=$allowInvoiceCreditOrVoid, effectiveDate=$effectiveDate, additionalProperties=$additionalProperties}" + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionTriggerPhaseResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionTriggerPhaseResponse.kt index 86d1b358..12b0be89 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionTriggerPhaseResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionTriggerPhaseResponse.kt @@ -20,98 +20,142 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class SubscriptionTriggerPhaseResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("active_plan_phase_order") - @ExcludeMissing - private val activePlanPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_intervals") - @ExcludeMissing - private val adjustmentIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_anchor_configuration") - @ExcludeMissing - private val billingCycleAnchorConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("default_invoice_memo") - @ExcludeMissing - private val defaultInvoiceMemo: JsonField = JsonMissing.of(), - @JsonProperty("discount_intervals") - @ExcludeMissing - private val discountIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_schedule") - @ExcludeMissing - private val fixedFeeQuantitySchedule: JsonField> = - JsonMissing.of(), - @JsonProperty("invoicing_threshold") - @ExcludeMissing - private val invoicingThreshold: JsonField = JsonMissing.of(), - @JsonProperty("maximum_intervals") - @ExcludeMissing - private val maximumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum_intervals") - @ExcludeMissing - private val minimumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("plan") @ExcludeMissing private val plan: JsonField = JsonMissing.of(), - @JsonProperty("price_intervals") - @ExcludeMissing - private val priceIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("redeemed_coupon") - @ExcludeMissing - private val redeemedCoupon: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("trial_info") - @ExcludeMissing - private val trialInfo: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val activePlanPhaseOrder: JsonField, + private val adjustmentIntervals: JsonField>, + private val autoCollection: JsonField, + private val billingCycleAnchorConfiguration: JsonField, + private val billingCycleDay: JsonField, + private val createdAt: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val customer: JsonField, + private val defaultInvoiceMemo: JsonField, + private val discountIntervals: JsonField>, + private val endDate: JsonField, + private val fixedFeeQuantitySchedule: JsonField>, + private val invoicingThreshold: JsonField, + private val maximumIntervals: JsonField>, + private val metadata: JsonField, + private val minimumIntervals: JsonField>, + private val netTerms: JsonField, + private val plan: JsonField, + private val priceIntervals: JsonField>, + private val redeemedCoupon: JsonField, + private val startDate: JsonField, + private val status: JsonField, + private val trialInfo: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("active_plan_phase_order") + @ExcludeMissing + activePlanPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_intervals") + @ExcludeMissing + adjustmentIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_anchor_configuration") + @ExcludeMissing + billingCycleAnchorConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("customer") @ExcludeMissing customer: JsonField = JsonMissing.of(), + @JsonProperty("default_invoice_memo") + @ExcludeMissing + defaultInvoiceMemo: JsonField = JsonMissing.of(), + @JsonProperty("discount_intervals") + @ExcludeMissing + discountIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_schedule") + @ExcludeMissing + fixedFeeQuantitySchedule: JsonField> = JsonMissing.of(), + @JsonProperty("invoicing_threshold") + @ExcludeMissing + invoicingThreshold: JsonField = JsonMissing.of(), + @JsonProperty("maximum_intervals") + @ExcludeMissing + maximumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("metadata") @ExcludeMissing metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum_intervals") + @ExcludeMissing + minimumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("plan") @ExcludeMissing plan: JsonField = JsonMissing.of(), + @JsonProperty("price_intervals") + @ExcludeMissing + priceIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("redeemed_coupon") + @ExcludeMissing + redeemedCoupon: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + @JsonProperty("trial_info") + @ExcludeMissing + trialInfo: JsonField = JsonMissing.of(), + ) : this( + id, + activePlanPhaseOrder, + adjustmentIntervals, + autoCollection, + billingCycleAnchorConfiguration, + billingCycleDay, + createdAt, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + customer, + defaultInvoiceMemo, + discountIntervals, + endDate, + fixedFeeQuantitySchedule, + invoicingThreshold, + maximumIntervals, + metadata, + minimumIntervals, + netTerms, + plan, + priceIntervals, + redeemedCoupon, + startDate, + status, + trialInfo, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -566,44 +610,15 @@ private constructor( */ @JsonProperty("trial_info") @ExcludeMissing fun _trialInfo(): JsonField = trialInfo + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): SubscriptionTriggerPhaseResponse = apply { - if (validated) { - return@apply - } - - id() - activePlanPhaseOrder() - adjustmentIntervals().forEach { it.validate() } - autoCollection() - billingCycleAnchorConfiguration().validate() - billingCycleDay() - createdAt() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - customer().validate() - defaultInvoiceMemo() - discountIntervals().forEach { it.validate() } - endDate() - fixedFeeQuantitySchedule().forEach { it.validate() } - invoicingThreshold() - maximumIntervals().forEach { it.validate() } - metadata().validate() - minimumIntervals().forEach { it.validate() } - netTerms() - plan().validate() - priceIntervals().forEach { it.validate() } - redeemedCoupon().ifPresent { it.validate() } - startDate() - status() - trialInfo().validate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1338,31 +1353,72 @@ private constructor( checkRequired("startDate", startDate), checkRequired("status", status), checkRequired("trialInfo", trialInfo), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): SubscriptionTriggerPhaseResponse = apply { + if (validated) { + return@apply + } + + id() + activePlanPhaseOrder() + adjustmentIntervals().forEach { it.validate() } + autoCollection() + billingCycleAnchorConfiguration().validate() + billingCycleDay() + createdAt() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + customer().validate() + defaultInvoiceMemo() + discountIntervals().forEach { it.validate() } + endDate() + fixedFeeQuantitySchedule().forEach { it.validate() } + invoicingThreshold() + maximumIntervals().forEach { it.validate() } + metadata().validate() + minimumIntervals().forEach { it.validate() } + netTerms() + plan().validate() + priceIntervals().forEach { it.validate() } + redeemedCoupon().ifPresent { it.validate() } + startDate() + status() + trialInfo().validate() + validated = true + } + class AdjustmentInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment") - @ExcludeMissing - private val adjustment: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustment: JsonField, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment") + @ExcludeMissing + adjustment: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(id, adjustment, appliesToPriceIntervalIds, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -1445,24 +1501,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AdjustmentInterval = apply { - if (validated) { - return@apply - } - - id() - adjustment().validate() - appliesToPriceIntervalIds() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1666,10 +1713,25 @@ private constructor( }, checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AdjustmentInterval = apply { + if (validated) { + return@apply + } + + id() + adjustment().validate() + appliesToPriceIntervalIds() + endDate() + startDate() + validated = true + } + @JsonDeserialize(using = Adjustment.Deserializer::class) @JsonSerialize(using = Adjustment.Serializer::class) class Adjustment @@ -1958,35 +2020,50 @@ private constructor( } } - @NoAutoDetect class PlanPhaseUsageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + usageDiscount, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2113,26 +2190,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseUsageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2370,10 +2436,27 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseUsageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + usageDiscount() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2494,35 +2577,50 @@ private constructor( "PlanPhaseUsageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, usageDiscount=$usageDiscount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseAmountDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amountDiscount, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2649,26 +2747,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseAmountDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amountDiscount() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2906,10 +2993,27 @@ private constructor( checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseAmountDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amountDiscount() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3030,35 +3134,50 @@ private constructor( "PlanPhaseAmountDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhasePercentageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val percentageDiscount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + percentageDiscount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3186,26 +3305,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhasePercentageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - percentageDiscount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3445,10 +3553,27 @@ private constructor( checkRequired("percentageDiscount", percentageDiscount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhasePercentageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + percentageDiscount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3569,38 +3694,55 @@ private constructor( "PlanPhasePercentageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, percentageDiscount=$percentageDiscount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMinimumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val itemId: JsonField, + private val minimumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + itemId, + minimumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3744,27 +3886,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMinimumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - itemId() - minimumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4018,10 +4148,28 @@ private constructor( checkRequired("minimumAmount", minimumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMinimumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + itemId() + minimumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4142,35 +4290,50 @@ private constructor( "PlanPhaseMinimumAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, itemId=$itemId, minimumAmount=$minimumAmount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMaximumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val maximumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + maximumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4297,26 +4460,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMaximumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - maximumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4553,10 +4705,27 @@ private constructor( checkRequired("maximumAmount", maximumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMaximumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + maximumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4696,19 +4865,21 @@ private constructor( "AdjustmentInterval{id=$id, adjustment=$adjustment, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleAnchorConfiguration - @JsonCreator private constructor( - @JsonProperty("day") @ExcludeMissing private val day: JsonField = JsonMissing.of(), - @JsonProperty("month") - @ExcludeMissing - private val month: JsonField = JsonMissing.of(), - @JsonProperty("year") @ExcludeMissing private val year: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val day: JsonField, + private val month: JsonField, + private val year: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("day") @ExcludeMissing day: JsonField = JsonMissing.of(), + @JsonProperty("month") @ExcludeMissing month: JsonField = JsonMissing.of(), + @JsonProperty("year") @ExcludeMissing year: JsonField = JsonMissing.of(), + ) : this(day, month, year, mutableMapOf()) + /** * The day of the month on which the billing cycle is anchored. If the maximum number of * days in a month is greater than this value, the last day of the month is the billing @@ -4759,22 +4930,15 @@ private constructor( */ @JsonProperty("year") @ExcludeMissing fun _year(): JsonField = year + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleAnchorConfiguration = apply { - if (validated) { - return@apply - } - - day() - month() - year() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4913,10 +5077,23 @@ private constructor( checkRequired("day", day), month, year, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleAnchorConfiguration = apply { + if (validated) { + return@apply + } + + day() + month() + year() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5112,32 +5289,47 @@ private constructor( } } - @NoAutoDetect class AmountDiscountInterval - @JsonCreator private constructor( - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + amountDiscount, + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + mutableMapOf(), + ) + /** * Only available if discount_type is `amount`. * @@ -5251,25 +5443,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AmountDiscountInterval = apply { - if (validated) { - return@apply - } - - amountDiscount() - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5483,10 +5665,26 @@ private constructor( checkRequired("discountType", discountType), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AmountDiscountInterval = apply { + if (validated) { + return@apply + } + + amountDiscount() + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -5605,32 +5803,47 @@ private constructor( "AmountDiscountInterval{amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PercentageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val percentageDiscount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + percentageDiscount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -5744,25 +5957,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PercentageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - percentageDiscount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5980,10 +6183,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("percentageDiscount", percentageDiscount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PercentageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + percentageDiscount() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6102,32 +6321,47 @@ private constructor( "PercentageDiscountInterval{appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, percentageDiscount=$percentageDiscount, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class UsageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + usageDiscount, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -6242,25 +6476,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UsageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6476,10 +6700,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("startDate", startDate), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UsageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + usageDiscount() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6599,26 +6839,29 @@ private constructor( } } - @NoAutoDetect class FixedFeeQuantitySchedule - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(endDate, priceId, quantity, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -6676,23 +6919,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantitySchedule = apply { - if (validated) { - return@apply - } - - endDate() - priceId() - quantity() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6819,10 +7054,24 @@ private constructor( checkRequired("priceId", priceId), checkRequired("quantity", quantity), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantitySchedule = apply { + if (validated) { + return@apply + } + + endDate() + priceId() + quantity() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6841,29 +7090,42 @@ private constructor( "FixedFeeQuantitySchedule{endDate=$endDate, priceId=$priceId, quantity=$quantity, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MaximumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val maximumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + maximumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this maximum interval applies to. * @@ -6956,24 +7218,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MaximumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - maximumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7161,10 +7414,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("maximumAmount", maximumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MaximumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + maximumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7188,27 +7456,20 @@ private constructor( * dictionary. Individual keys can be removed by setting the value to `null`, and the entire * metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7252,7 +7513,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -7272,29 +7543,42 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class MinimumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val minimumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + minimumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this minimum interval applies to. * @@ -7387,24 +7671,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MinimumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - minimumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7592,10 +7867,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("minimumAmount", minimumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MinimumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + minimumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7618,43 +7908,62 @@ private constructor( * The Price Interval resource represents a period of time for which a price will bill on a * subscription. A subscription’s price intervals define its billing behavior. */ - @NoAutoDetect class PriceInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("filter") - @ExcludeMissing - private val filter: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_transitions") - @ExcludeMissing - private val fixedFeeQuantityTransitions: JsonField> = - JsonMissing.of(), - @JsonProperty("price") - @ExcludeMissing - private val price: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_customer_ids") - @ExcludeMissing - private val usageCustomerIds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billingCycleDay: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val endDate: JsonField, + private val filter: JsonField, + private val fixedFeeQuantityTransitions: JsonField>, + private val price: JsonField, + private val startDate: JsonField, + private val usageCustomerIds: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("filter") @ExcludeMissing filter: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_transitions") + @ExcludeMissing + fixedFeeQuantityTransitions: JsonField> = + JsonMissing.of(), + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_customer_ids") + @ExcludeMissing + usageCustomerIds: JsonField> = JsonMissing.of(), + ) : this( + id, + billingCycleDay, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + endDate, + filter, + fixedFeeQuantityTransitions, + price, + startDate, + usageCustomerIds, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -7852,29 +8161,15 @@ private constructor( @ExcludeMissing fun _usageCustomerIds(): JsonField> = usageCustomerIds + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PriceInterval = apply { - if (validated) { - return@apply - } - - id() - billingCycleDay() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - endDate() - filter() - fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } - price().validate() - startDate() - usageCustomerIds() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8359,27 +8654,51 @@ private constructor( checkRequired("price", price), checkRequired("startDate", startDate), checkRequired("usageCustomerIds", usageCustomerIds).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): PriceInterval = apply { + if (validated) { + return@apply + } + + id() + billingCycleDay() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + endDate() + filter() + fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } + price().validate() + startDate() + usageCustomerIds() + validated = true + } + class FixedFeeQuantityTransition - @JsonCreator private constructor( - @JsonProperty("effective_date") - @ExcludeMissing - private val effectiveDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val effectiveDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("effective_date") + @ExcludeMissing + effectiveDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") + @ExcludeMissing + priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + ) : this(effectiveDate, priceId, quantity, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -8426,22 +8745,15 @@ private constructor( */ @JsonProperty("quantity") @ExcludeMissing fun _quantity(): JsonField = quantity + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantityTransition = apply { - if (validated) { - return@apply - } - - effectiveDate() - priceId() - quantity() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8555,10 +8867,23 @@ private constructor( checkRequired("effectiveDate", effectiveDate), checkRequired("priceId", priceId), checkRequired("quantity", quantity), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantityTransition = apply { + if (validated) { + return@apply + } + + effectiveDate() + priceId() + quantity() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8595,23 +8920,27 @@ private constructor( "PriceInterval{id=$id, billingCycleDay=$billingCycleDay, currentBillingPeriodEndDate=$currentBillingPeriodEndDate, currentBillingPeriodStartDate=$currentBillingPeriodStartDate, endDate=$endDate, filter=$filter, fixedFeeQuantityTransitions=$fixedFeeQuantityTransitions, price=$price, startDate=$startDate, usageCustomerIds=$usageCustomerIds, additionalProperties=$additionalProperties}" } - @NoAutoDetect class RedeemedCoupon - @JsonCreator private constructor( - @JsonProperty("coupon_id") - @ExcludeMissing - private val couponId: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val couponId: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("coupon_id") + @ExcludeMissing + couponId: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(couponId, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -8656,22 +8985,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): RedeemedCoupon = apply { - if (validated) { - return@apply - } - - couponId() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8782,10 +9104,23 @@ private constructor( checkRequired("couponId", couponId), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): RedeemedCoupon = apply { + if (validated) { + return@apply + } + + couponId() + endDate() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8907,17 +9242,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TrialInfo - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of() + ) : this(endDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -8934,20 +9271,15 @@ private constructor( @ExcludeMissing fun _endDate(): JsonField = endDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TrialInfo = apply { - if (validated) { - return@apply - } - - endDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9022,7 +9354,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): TrialInfo = - TrialInfo(checkRequired("endDate", endDate), additionalProperties.toImmutable()) + TrialInfo(checkRequired("endDate", endDate), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TrialInfo = apply { + if (validated) { + return@apply + } + + endDate() + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleCancellationParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleCancellationParams.kt index 1bfba586..8509ce45 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleCancellationParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleCancellationParams.kt @@ -2,13 +2,15 @@ package com.withorb.api.models +import com.fasterxml.jackson.annotation.JsonAnyGetter +import com.fasterxml.jackson.annotation.JsonAnySetter +import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.toImmutable +import java.util.Collections import java.util.Objects import java.util.Optional @@ -24,7 +26,7 @@ private constructor( private val subscriptionId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: Map, + private val additionalBodyProperties: MutableMap, ) : Params { fun subscriptionId(): String = subscriptionId @@ -33,21 +35,15 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _additionalBodyProperties(): Map = additionalBodyProperties - - @JvmSynthetic - internal fun _body(): Optional> = - Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) - - fun _pathParam(index: Int): String = - when (index) { - 0 -> subscriptionId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders + @JsonAnySetter + private fun putAdditionalBodyProperty(key: String, value: JsonValue) { + additionalBodyProperties.put(key, value) + } - override fun _queryParams(): QueryParams = additionalQueryParams + @JsonAnyGetter + @ExcludeMissing + fun _additionalBodyProperties(): Map = + Collections.unmodifiableMap(additionalBodyProperties) fun toBuilder() = Builder().from(this) @@ -66,7 +62,6 @@ private constructor( } /** A builder for [SubscriptionUnscheduleCancellationParams]. */ - @NoAutoDetect class Builder internal constructor() { private var subscriptionId: String? = null @@ -226,10 +221,24 @@ private constructor( checkRequired("subscriptionId", subscriptionId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toImmutable(), + additionalBodyProperties.toMutableMap(), ) } + @JvmSynthetic + internal fun _body(): Optional> = + Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) + + fun _pathParam(index: Int): String = + when (index) { + 0 -> subscriptionId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleCancellationResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleCancellationResponse.kt index 0ee20a93..3c6a2b9d 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleCancellationResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleCancellationResponse.kt @@ -20,98 +20,142 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class SubscriptionUnscheduleCancellationResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("active_plan_phase_order") - @ExcludeMissing - private val activePlanPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_intervals") - @ExcludeMissing - private val adjustmentIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_anchor_configuration") - @ExcludeMissing - private val billingCycleAnchorConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("default_invoice_memo") - @ExcludeMissing - private val defaultInvoiceMemo: JsonField = JsonMissing.of(), - @JsonProperty("discount_intervals") - @ExcludeMissing - private val discountIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_schedule") - @ExcludeMissing - private val fixedFeeQuantitySchedule: JsonField> = - JsonMissing.of(), - @JsonProperty("invoicing_threshold") - @ExcludeMissing - private val invoicingThreshold: JsonField = JsonMissing.of(), - @JsonProperty("maximum_intervals") - @ExcludeMissing - private val maximumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum_intervals") - @ExcludeMissing - private val minimumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("plan") @ExcludeMissing private val plan: JsonField = JsonMissing.of(), - @JsonProperty("price_intervals") - @ExcludeMissing - private val priceIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("redeemed_coupon") - @ExcludeMissing - private val redeemedCoupon: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("trial_info") - @ExcludeMissing - private val trialInfo: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val activePlanPhaseOrder: JsonField, + private val adjustmentIntervals: JsonField>, + private val autoCollection: JsonField, + private val billingCycleAnchorConfiguration: JsonField, + private val billingCycleDay: JsonField, + private val createdAt: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val customer: JsonField, + private val defaultInvoiceMemo: JsonField, + private val discountIntervals: JsonField>, + private val endDate: JsonField, + private val fixedFeeQuantitySchedule: JsonField>, + private val invoicingThreshold: JsonField, + private val maximumIntervals: JsonField>, + private val metadata: JsonField, + private val minimumIntervals: JsonField>, + private val netTerms: JsonField, + private val plan: JsonField, + private val priceIntervals: JsonField>, + private val redeemedCoupon: JsonField, + private val startDate: JsonField, + private val status: JsonField, + private val trialInfo: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("active_plan_phase_order") + @ExcludeMissing + activePlanPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_intervals") + @ExcludeMissing + adjustmentIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_anchor_configuration") + @ExcludeMissing + billingCycleAnchorConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("customer") @ExcludeMissing customer: JsonField = JsonMissing.of(), + @JsonProperty("default_invoice_memo") + @ExcludeMissing + defaultInvoiceMemo: JsonField = JsonMissing.of(), + @JsonProperty("discount_intervals") + @ExcludeMissing + discountIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_schedule") + @ExcludeMissing + fixedFeeQuantitySchedule: JsonField> = JsonMissing.of(), + @JsonProperty("invoicing_threshold") + @ExcludeMissing + invoicingThreshold: JsonField = JsonMissing.of(), + @JsonProperty("maximum_intervals") + @ExcludeMissing + maximumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("metadata") @ExcludeMissing metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum_intervals") + @ExcludeMissing + minimumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("plan") @ExcludeMissing plan: JsonField = JsonMissing.of(), + @JsonProperty("price_intervals") + @ExcludeMissing + priceIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("redeemed_coupon") + @ExcludeMissing + redeemedCoupon: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + @JsonProperty("trial_info") + @ExcludeMissing + trialInfo: JsonField = JsonMissing.of(), + ) : this( + id, + activePlanPhaseOrder, + adjustmentIntervals, + autoCollection, + billingCycleAnchorConfiguration, + billingCycleDay, + createdAt, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + customer, + defaultInvoiceMemo, + discountIntervals, + endDate, + fixedFeeQuantitySchedule, + invoicingThreshold, + maximumIntervals, + metadata, + minimumIntervals, + netTerms, + plan, + priceIntervals, + redeemedCoupon, + startDate, + status, + trialInfo, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -566,44 +610,15 @@ private constructor( */ @JsonProperty("trial_info") @ExcludeMissing fun _trialInfo(): JsonField = trialInfo + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): SubscriptionUnscheduleCancellationResponse = apply { - if (validated) { - return@apply - } - - id() - activePlanPhaseOrder() - adjustmentIntervals().forEach { it.validate() } - autoCollection() - billingCycleAnchorConfiguration().validate() - billingCycleDay() - createdAt() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - customer().validate() - defaultInvoiceMemo() - discountIntervals().forEach { it.validate() } - endDate() - fixedFeeQuantitySchedule().forEach { it.validate() } - invoicingThreshold() - maximumIntervals().forEach { it.validate() } - metadata().validate() - minimumIntervals().forEach { it.validate() } - netTerms() - plan().validate() - priceIntervals().forEach { it.validate() } - redeemedCoupon().ifPresent { it.validate() } - startDate() - status() - trialInfo().validate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1347,31 +1362,72 @@ private constructor( checkRequired("startDate", startDate), checkRequired("status", status), checkRequired("trialInfo", trialInfo), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): SubscriptionUnscheduleCancellationResponse = apply { + if (validated) { + return@apply + } + + id() + activePlanPhaseOrder() + adjustmentIntervals().forEach { it.validate() } + autoCollection() + billingCycleAnchorConfiguration().validate() + billingCycleDay() + createdAt() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + customer().validate() + defaultInvoiceMemo() + discountIntervals().forEach { it.validate() } + endDate() + fixedFeeQuantitySchedule().forEach { it.validate() } + invoicingThreshold() + maximumIntervals().forEach { it.validate() } + metadata().validate() + minimumIntervals().forEach { it.validate() } + netTerms() + plan().validate() + priceIntervals().forEach { it.validate() } + redeemedCoupon().ifPresent { it.validate() } + startDate() + status() + trialInfo().validate() + validated = true + } + class AdjustmentInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment") - @ExcludeMissing - private val adjustment: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustment: JsonField, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment") + @ExcludeMissing + adjustment: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(id, adjustment, appliesToPriceIntervalIds, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -1454,24 +1510,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AdjustmentInterval = apply { - if (validated) { - return@apply - } - - id() - adjustment().validate() - appliesToPriceIntervalIds() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1675,10 +1722,25 @@ private constructor( }, checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AdjustmentInterval = apply { + if (validated) { + return@apply + } + + id() + adjustment().validate() + appliesToPriceIntervalIds() + endDate() + startDate() + validated = true + } + @JsonDeserialize(using = Adjustment.Deserializer::class) @JsonSerialize(using = Adjustment.Serializer::class) class Adjustment @@ -1967,35 +2029,50 @@ private constructor( } } - @NoAutoDetect class PlanPhaseUsageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + usageDiscount, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2122,26 +2199,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseUsageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2379,10 +2445,27 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseUsageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + usageDiscount() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2503,35 +2586,50 @@ private constructor( "PlanPhaseUsageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, usageDiscount=$usageDiscount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseAmountDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amountDiscount, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2658,26 +2756,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseAmountDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amountDiscount() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2915,10 +3002,27 @@ private constructor( checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseAmountDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amountDiscount() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3039,35 +3143,50 @@ private constructor( "PlanPhaseAmountDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhasePercentageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val percentageDiscount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + percentageDiscount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3195,26 +3314,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhasePercentageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - percentageDiscount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3454,10 +3562,27 @@ private constructor( checkRequired("percentageDiscount", percentageDiscount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhasePercentageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + percentageDiscount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3578,38 +3703,55 @@ private constructor( "PlanPhasePercentageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, percentageDiscount=$percentageDiscount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMinimumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val itemId: JsonField, + private val minimumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + itemId, + minimumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3753,27 +3895,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMinimumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - itemId() - minimumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4027,10 +4157,28 @@ private constructor( checkRequired("minimumAmount", minimumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMinimumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + itemId() + minimumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4151,35 +4299,50 @@ private constructor( "PlanPhaseMinimumAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, itemId=$itemId, minimumAmount=$minimumAmount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMaximumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val maximumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + maximumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4306,26 +4469,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMaximumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - maximumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4562,10 +4714,27 @@ private constructor( checkRequired("maximumAmount", maximumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMaximumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + maximumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4705,19 +4874,21 @@ private constructor( "AdjustmentInterval{id=$id, adjustment=$adjustment, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleAnchorConfiguration - @JsonCreator private constructor( - @JsonProperty("day") @ExcludeMissing private val day: JsonField = JsonMissing.of(), - @JsonProperty("month") - @ExcludeMissing - private val month: JsonField = JsonMissing.of(), - @JsonProperty("year") @ExcludeMissing private val year: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val day: JsonField, + private val month: JsonField, + private val year: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("day") @ExcludeMissing day: JsonField = JsonMissing.of(), + @JsonProperty("month") @ExcludeMissing month: JsonField = JsonMissing.of(), + @JsonProperty("year") @ExcludeMissing year: JsonField = JsonMissing.of(), + ) : this(day, month, year, mutableMapOf()) + /** * The day of the month on which the billing cycle is anchored. If the maximum number of * days in a month is greater than this value, the last day of the month is the billing @@ -4768,22 +4939,15 @@ private constructor( */ @JsonProperty("year") @ExcludeMissing fun _year(): JsonField = year + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleAnchorConfiguration = apply { - if (validated) { - return@apply - } - - day() - month() - year() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4922,10 +5086,23 @@ private constructor( checkRequired("day", day), month, year, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleAnchorConfiguration = apply { + if (validated) { + return@apply + } + + day() + month() + year() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5121,32 +5298,47 @@ private constructor( } } - @NoAutoDetect class AmountDiscountInterval - @JsonCreator private constructor( - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + amountDiscount, + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + mutableMapOf(), + ) + /** * Only available if discount_type is `amount`. * @@ -5260,25 +5452,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AmountDiscountInterval = apply { - if (validated) { - return@apply - } - - amountDiscount() - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5492,10 +5674,26 @@ private constructor( checkRequired("discountType", discountType), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AmountDiscountInterval = apply { + if (validated) { + return@apply + } + + amountDiscount() + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -5614,32 +5812,47 @@ private constructor( "AmountDiscountInterval{amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PercentageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val percentageDiscount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + percentageDiscount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -5753,25 +5966,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PercentageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - percentageDiscount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5989,10 +6192,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("percentageDiscount", percentageDiscount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PercentageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + percentageDiscount() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6111,32 +6330,47 @@ private constructor( "PercentageDiscountInterval{appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, percentageDiscount=$percentageDiscount, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class UsageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + usageDiscount, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -6251,25 +6485,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UsageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6485,10 +6709,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("startDate", startDate), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UsageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + usageDiscount() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6608,26 +6848,29 @@ private constructor( } } - @NoAutoDetect class FixedFeeQuantitySchedule - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(endDate, priceId, quantity, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -6685,23 +6928,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantitySchedule = apply { - if (validated) { - return@apply - } - - endDate() - priceId() - quantity() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6828,10 +7063,24 @@ private constructor( checkRequired("priceId", priceId), checkRequired("quantity", quantity), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantitySchedule = apply { + if (validated) { + return@apply + } + + endDate() + priceId() + quantity() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6850,29 +7099,42 @@ private constructor( "FixedFeeQuantitySchedule{endDate=$endDate, priceId=$priceId, quantity=$quantity, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MaximumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val maximumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + maximumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this maximum interval applies to. * @@ -6965,24 +7227,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MaximumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - maximumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7170,10 +7423,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("maximumAmount", maximumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MaximumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + maximumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7197,27 +7465,20 @@ private constructor( * dictionary. Individual keys can be removed by setting the value to `null`, and the entire * metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7261,7 +7522,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -7281,29 +7552,42 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class MinimumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val minimumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + minimumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this minimum interval applies to. * @@ -7396,24 +7680,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MinimumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - minimumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7601,10 +7876,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("minimumAmount", minimumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MinimumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + minimumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7627,43 +7917,62 @@ private constructor( * The Price Interval resource represents a period of time for which a price will bill on a * subscription. A subscription’s price intervals define its billing behavior. */ - @NoAutoDetect class PriceInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("filter") - @ExcludeMissing - private val filter: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_transitions") - @ExcludeMissing - private val fixedFeeQuantityTransitions: JsonField> = - JsonMissing.of(), - @JsonProperty("price") - @ExcludeMissing - private val price: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_customer_ids") - @ExcludeMissing - private val usageCustomerIds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billingCycleDay: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val endDate: JsonField, + private val filter: JsonField, + private val fixedFeeQuantityTransitions: JsonField>, + private val price: JsonField, + private val startDate: JsonField, + private val usageCustomerIds: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("filter") @ExcludeMissing filter: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_transitions") + @ExcludeMissing + fixedFeeQuantityTransitions: JsonField> = + JsonMissing.of(), + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_customer_ids") + @ExcludeMissing + usageCustomerIds: JsonField> = JsonMissing.of(), + ) : this( + id, + billingCycleDay, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + endDate, + filter, + fixedFeeQuantityTransitions, + price, + startDate, + usageCustomerIds, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -7861,29 +8170,15 @@ private constructor( @ExcludeMissing fun _usageCustomerIds(): JsonField> = usageCustomerIds + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PriceInterval = apply { - if (validated) { - return@apply - } - - id() - billingCycleDay() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - endDate() - filter() - fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } - price().validate() - startDate() - usageCustomerIds() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8368,27 +8663,51 @@ private constructor( checkRequired("price", price), checkRequired("startDate", startDate), checkRequired("usageCustomerIds", usageCustomerIds).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): PriceInterval = apply { + if (validated) { + return@apply + } + + id() + billingCycleDay() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + endDate() + filter() + fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } + price().validate() + startDate() + usageCustomerIds() + validated = true + } + class FixedFeeQuantityTransition - @JsonCreator private constructor( - @JsonProperty("effective_date") - @ExcludeMissing - private val effectiveDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val effectiveDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("effective_date") + @ExcludeMissing + effectiveDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") + @ExcludeMissing + priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + ) : this(effectiveDate, priceId, quantity, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -8435,22 +8754,15 @@ private constructor( */ @JsonProperty("quantity") @ExcludeMissing fun _quantity(): JsonField = quantity + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantityTransition = apply { - if (validated) { - return@apply - } - - effectiveDate() - priceId() - quantity() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8564,10 +8876,23 @@ private constructor( checkRequired("effectiveDate", effectiveDate), checkRequired("priceId", priceId), checkRequired("quantity", quantity), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantityTransition = apply { + if (validated) { + return@apply + } + + effectiveDate() + priceId() + quantity() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8604,23 +8929,27 @@ private constructor( "PriceInterval{id=$id, billingCycleDay=$billingCycleDay, currentBillingPeriodEndDate=$currentBillingPeriodEndDate, currentBillingPeriodStartDate=$currentBillingPeriodStartDate, endDate=$endDate, filter=$filter, fixedFeeQuantityTransitions=$fixedFeeQuantityTransitions, price=$price, startDate=$startDate, usageCustomerIds=$usageCustomerIds, additionalProperties=$additionalProperties}" } - @NoAutoDetect class RedeemedCoupon - @JsonCreator private constructor( - @JsonProperty("coupon_id") - @ExcludeMissing - private val couponId: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val couponId: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("coupon_id") + @ExcludeMissing + couponId: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(couponId, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -8665,22 +8994,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): RedeemedCoupon = apply { - if (validated) { - return@apply - } - - couponId() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8791,10 +9113,23 @@ private constructor( checkRequired("couponId", couponId), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): RedeemedCoupon = apply { + if (validated) { + return@apply + } + + couponId() + endDate() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8916,17 +9251,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TrialInfo - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of() + ) : this(endDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -8943,20 +9280,15 @@ private constructor( @ExcludeMissing fun _endDate(): JsonField = endDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TrialInfo = apply { - if (validated) { - return@apply - } - - endDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9031,7 +9363,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): TrialInfo = - TrialInfo(checkRequired("endDate", endDate), additionalProperties.toImmutable()) + TrialInfo(checkRequired("endDate", endDate), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TrialInfo = apply { + if (validated) { + return@apply + } + + endDate() + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleFixedFeeQuantityUpdatesParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleFixedFeeQuantityUpdatesParams.kt index 23c81e37..c8aea24c 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleFixedFeeQuantityUpdatesParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleFixedFeeQuantityUpdatesParams.kt @@ -10,14 +10,12 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects /** @@ -57,151 +55,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - fun _pathParam(index: Int): String = - when (index) { - 0 -> subscriptionId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * Price for which the updates should be cleared. Must be a fixed fee. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun priceId(): String = priceId.getRequired("price_id") - - /** - * Returns the raw JSON value of [priceId]. - * - * Unlike [priceId], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("price_id") @ExcludeMissing fun _priceId(): JsonField = priceId - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - priceId() - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .priceId() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var priceId: JsonField? = null - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - priceId = body.priceId - additionalProperties = body.additionalProperties.toMutableMap() - } - - /** Price for which the updates should be cleared. Must be a fixed fee. */ - fun priceId(priceId: String) = priceId(JsonField.of(priceId)) - - /** - * Sets [Builder.priceId] to an arbitrary JSON value. - * - * You should usually call [Builder.priceId] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun priceId(priceId: JsonField) = apply { this.priceId = priceId } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .priceId() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body(checkRequired("priceId", priceId), additionalProperties.toImmutable()) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && priceId == other.priceId && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(priceId, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{priceId=$priceId, additionalProperties=$additionalProperties}" - } - fun toBuilder() = Builder().from(this) companion object { @@ -220,7 +73,6 @@ private constructor( } /** A builder for [SubscriptionUnscheduleFixedFeeQuantityUpdatesParams]. */ - @NoAutoDetect class Builder internal constructor() { private var subscriptionId: String? = null @@ -394,6 +246,157 @@ private constructor( ) } + @JvmSynthetic internal fun _body(): Body = body + + fun _pathParam(index: Int): String = + when (index) { + 0 -> subscriptionId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body + private constructor( + private val priceId: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of() + ) : this(priceId, mutableMapOf()) + + /** + * Price for which the updates should be cleared. Must be a fixed fee. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun priceId(): String = priceId.getRequired("price_id") + + /** + * Returns the raw JSON value of [priceId]. + * + * Unlike [priceId], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("price_id") @ExcludeMissing fun _priceId(): JsonField = priceId + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .priceId() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var priceId: JsonField? = null + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + priceId = body.priceId + additionalProperties = body.additionalProperties.toMutableMap() + } + + /** Price for which the updates should be cleared. Must be a fixed fee. */ + fun priceId(priceId: String) = priceId(JsonField.of(priceId)) + + /** + * Sets [Builder.priceId] to an arbitrary JSON value. + * + * You should usually call [Builder.priceId] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun priceId(priceId: JsonField) = apply { this.priceId = priceId } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .priceId() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body(checkRequired("priceId", priceId), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Body = apply { + if (validated) { + return@apply + } + + priceId() + validated = true + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Body && priceId == other.priceId && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(priceId, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{priceId=$priceId, additionalProperties=$additionalProperties}" + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleFixedFeeQuantityUpdatesResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleFixedFeeQuantityUpdatesResponse.kt index dcffb54a..daf39028 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleFixedFeeQuantityUpdatesResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleFixedFeeQuantityUpdatesResponse.kt @@ -20,98 +20,142 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class SubscriptionUnscheduleFixedFeeQuantityUpdatesResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("active_plan_phase_order") - @ExcludeMissing - private val activePlanPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_intervals") - @ExcludeMissing - private val adjustmentIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_anchor_configuration") - @ExcludeMissing - private val billingCycleAnchorConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("default_invoice_memo") - @ExcludeMissing - private val defaultInvoiceMemo: JsonField = JsonMissing.of(), - @JsonProperty("discount_intervals") - @ExcludeMissing - private val discountIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_schedule") - @ExcludeMissing - private val fixedFeeQuantitySchedule: JsonField> = - JsonMissing.of(), - @JsonProperty("invoicing_threshold") - @ExcludeMissing - private val invoicingThreshold: JsonField = JsonMissing.of(), - @JsonProperty("maximum_intervals") - @ExcludeMissing - private val maximumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum_intervals") - @ExcludeMissing - private val minimumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("plan") @ExcludeMissing private val plan: JsonField = JsonMissing.of(), - @JsonProperty("price_intervals") - @ExcludeMissing - private val priceIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("redeemed_coupon") - @ExcludeMissing - private val redeemedCoupon: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("trial_info") - @ExcludeMissing - private val trialInfo: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val activePlanPhaseOrder: JsonField, + private val adjustmentIntervals: JsonField>, + private val autoCollection: JsonField, + private val billingCycleAnchorConfiguration: JsonField, + private val billingCycleDay: JsonField, + private val createdAt: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val customer: JsonField, + private val defaultInvoiceMemo: JsonField, + private val discountIntervals: JsonField>, + private val endDate: JsonField, + private val fixedFeeQuantitySchedule: JsonField>, + private val invoicingThreshold: JsonField, + private val maximumIntervals: JsonField>, + private val metadata: JsonField, + private val minimumIntervals: JsonField>, + private val netTerms: JsonField, + private val plan: JsonField, + private val priceIntervals: JsonField>, + private val redeemedCoupon: JsonField, + private val startDate: JsonField, + private val status: JsonField, + private val trialInfo: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("active_plan_phase_order") + @ExcludeMissing + activePlanPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_intervals") + @ExcludeMissing + adjustmentIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_anchor_configuration") + @ExcludeMissing + billingCycleAnchorConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("customer") @ExcludeMissing customer: JsonField = JsonMissing.of(), + @JsonProperty("default_invoice_memo") + @ExcludeMissing + defaultInvoiceMemo: JsonField = JsonMissing.of(), + @JsonProperty("discount_intervals") + @ExcludeMissing + discountIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_schedule") + @ExcludeMissing + fixedFeeQuantitySchedule: JsonField> = JsonMissing.of(), + @JsonProperty("invoicing_threshold") + @ExcludeMissing + invoicingThreshold: JsonField = JsonMissing.of(), + @JsonProperty("maximum_intervals") + @ExcludeMissing + maximumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("metadata") @ExcludeMissing metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum_intervals") + @ExcludeMissing + minimumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("plan") @ExcludeMissing plan: JsonField = JsonMissing.of(), + @JsonProperty("price_intervals") + @ExcludeMissing + priceIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("redeemed_coupon") + @ExcludeMissing + redeemedCoupon: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + @JsonProperty("trial_info") + @ExcludeMissing + trialInfo: JsonField = JsonMissing.of(), + ) : this( + id, + activePlanPhaseOrder, + adjustmentIntervals, + autoCollection, + billingCycleAnchorConfiguration, + billingCycleDay, + createdAt, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + customer, + defaultInvoiceMemo, + discountIntervals, + endDate, + fixedFeeQuantitySchedule, + invoicingThreshold, + maximumIntervals, + metadata, + minimumIntervals, + netTerms, + plan, + priceIntervals, + redeemedCoupon, + startDate, + status, + trialInfo, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -566,44 +610,15 @@ private constructor( */ @JsonProperty("trial_info") @ExcludeMissing fun _trialInfo(): JsonField = trialInfo + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): SubscriptionUnscheduleFixedFeeQuantityUpdatesResponse = apply { - if (validated) { - return@apply - } - - id() - activePlanPhaseOrder() - adjustmentIntervals().forEach { it.validate() } - autoCollection() - billingCycleAnchorConfiguration().validate() - billingCycleDay() - createdAt() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - customer().validate() - defaultInvoiceMemo() - discountIntervals().forEach { it.validate() } - endDate() - fixedFeeQuantitySchedule().forEach { it.validate() } - invoicingThreshold() - maximumIntervals().forEach { it.validate() } - metadata().validate() - minimumIntervals().forEach { it.validate() } - netTerms() - plan().validate() - priceIntervals().forEach { it.validate() } - redeemedCoupon().ifPresent { it.validate() } - startDate() - status() - trialInfo().validate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1355,31 +1370,72 @@ private constructor( checkRequired("startDate", startDate), checkRequired("status", status), checkRequired("trialInfo", trialInfo), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): SubscriptionUnscheduleFixedFeeQuantityUpdatesResponse = apply { + if (validated) { + return@apply + } + + id() + activePlanPhaseOrder() + adjustmentIntervals().forEach { it.validate() } + autoCollection() + billingCycleAnchorConfiguration().validate() + billingCycleDay() + createdAt() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + customer().validate() + defaultInvoiceMemo() + discountIntervals().forEach { it.validate() } + endDate() + fixedFeeQuantitySchedule().forEach { it.validate() } + invoicingThreshold() + maximumIntervals().forEach { it.validate() } + metadata().validate() + minimumIntervals().forEach { it.validate() } + netTerms() + plan().validate() + priceIntervals().forEach { it.validate() } + redeemedCoupon().ifPresent { it.validate() } + startDate() + status() + trialInfo().validate() + validated = true + } + class AdjustmentInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment") - @ExcludeMissing - private val adjustment: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustment: JsonField, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment") + @ExcludeMissing + adjustment: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(id, adjustment, appliesToPriceIntervalIds, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -1462,24 +1518,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AdjustmentInterval = apply { - if (validated) { - return@apply - } - - id() - adjustment().validate() - appliesToPriceIntervalIds() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1683,10 +1730,25 @@ private constructor( }, checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AdjustmentInterval = apply { + if (validated) { + return@apply + } + + id() + adjustment().validate() + appliesToPriceIntervalIds() + endDate() + startDate() + validated = true + } + @JsonDeserialize(using = Adjustment.Deserializer::class) @JsonSerialize(using = Adjustment.Serializer::class) class Adjustment @@ -1975,35 +2037,50 @@ private constructor( } } - @NoAutoDetect class PlanPhaseUsageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + usageDiscount, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2130,26 +2207,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseUsageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2387,10 +2453,27 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseUsageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + usageDiscount() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2511,35 +2594,50 @@ private constructor( "PlanPhaseUsageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, usageDiscount=$usageDiscount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseAmountDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amountDiscount, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2666,26 +2764,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseAmountDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amountDiscount() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2923,10 +3010,27 @@ private constructor( checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseAmountDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amountDiscount() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3047,35 +3151,50 @@ private constructor( "PlanPhaseAmountDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhasePercentageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val percentageDiscount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + percentageDiscount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3203,26 +3322,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhasePercentageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - percentageDiscount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3462,10 +3570,27 @@ private constructor( checkRequired("percentageDiscount", percentageDiscount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhasePercentageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + percentageDiscount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3586,38 +3711,55 @@ private constructor( "PlanPhasePercentageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, percentageDiscount=$percentageDiscount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMinimumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val itemId: JsonField, + private val minimumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + itemId, + minimumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3761,27 +3903,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMinimumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - itemId() - minimumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4035,10 +4165,28 @@ private constructor( checkRequired("minimumAmount", minimumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMinimumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + itemId() + minimumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4159,35 +4307,50 @@ private constructor( "PlanPhaseMinimumAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, itemId=$itemId, minimumAmount=$minimumAmount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMaximumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val maximumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + maximumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4314,26 +4477,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMaximumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - maximumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4570,10 +4722,27 @@ private constructor( checkRequired("maximumAmount", maximumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMaximumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + maximumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4713,19 +4882,21 @@ private constructor( "AdjustmentInterval{id=$id, adjustment=$adjustment, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleAnchorConfiguration - @JsonCreator private constructor( - @JsonProperty("day") @ExcludeMissing private val day: JsonField = JsonMissing.of(), - @JsonProperty("month") - @ExcludeMissing - private val month: JsonField = JsonMissing.of(), - @JsonProperty("year") @ExcludeMissing private val year: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val day: JsonField, + private val month: JsonField, + private val year: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("day") @ExcludeMissing day: JsonField = JsonMissing.of(), + @JsonProperty("month") @ExcludeMissing month: JsonField = JsonMissing.of(), + @JsonProperty("year") @ExcludeMissing year: JsonField = JsonMissing.of(), + ) : this(day, month, year, mutableMapOf()) + /** * The day of the month on which the billing cycle is anchored. If the maximum number of * days in a month is greater than this value, the last day of the month is the billing @@ -4776,22 +4947,15 @@ private constructor( */ @JsonProperty("year") @ExcludeMissing fun _year(): JsonField = year + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleAnchorConfiguration = apply { - if (validated) { - return@apply - } - - day() - month() - year() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4930,10 +5094,23 @@ private constructor( checkRequired("day", day), month, year, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleAnchorConfiguration = apply { + if (validated) { + return@apply + } + + day() + month() + year() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5129,32 +5306,47 @@ private constructor( } } - @NoAutoDetect class AmountDiscountInterval - @JsonCreator private constructor( - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + amountDiscount, + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + mutableMapOf(), + ) + /** * Only available if discount_type is `amount`. * @@ -5268,25 +5460,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AmountDiscountInterval = apply { - if (validated) { - return@apply - } - - amountDiscount() - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5500,10 +5682,26 @@ private constructor( checkRequired("discountType", discountType), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AmountDiscountInterval = apply { + if (validated) { + return@apply + } + + amountDiscount() + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -5622,32 +5820,47 @@ private constructor( "AmountDiscountInterval{amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PercentageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val percentageDiscount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + percentageDiscount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -5761,25 +5974,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PercentageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - percentageDiscount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5997,10 +6200,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("percentageDiscount", percentageDiscount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PercentageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + percentageDiscount() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6119,32 +6338,47 @@ private constructor( "PercentageDiscountInterval{appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, percentageDiscount=$percentageDiscount, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class UsageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + usageDiscount, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -6259,25 +6493,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UsageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6493,10 +6717,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("startDate", startDate), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UsageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + usageDiscount() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6616,26 +6856,29 @@ private constructor( } } - @NoAutoDetect class FixedFeeQuantitySchedule - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(endDate, priceId, quantity, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -6693,23 +6936,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantitySchedule = apply { - if (validated) { - return@apply - } - - endDate() - priceId() - quantity() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6836,10 +7071,24 @@ private constructor( checkRequired("priceId", priceId), checkRequired("quantity", quantity), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantitySchedule = apply { + if (validated) { + return@apply + } + + endDate() + priceId() + quantity() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6858,29 +7107,42 @@ private constructor( "FixedFeeQuantitySchedule{endDate=$endDate, priceId=$priceId, quantity=$quantity, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MaximumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val maximumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + maximumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this maximum interval applies to. * @@ -6973,24 +7235,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MaximumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - maximumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7178,10 +7431,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("maximumAmount", maximumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MaximumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + maximumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7205,27 +7473,20 @@ private constructor( * dictionary. Individual keys can be removed by setting the value to `null`, and the entire * metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7269,7 +7530,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -7289,29 +7560,42 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class MinimumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val minimumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + minimumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this minimum interval applies to. * @@ -7404,24 +7688,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MinimumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - minimumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7609,10 +7884,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("minimumAmount", minimumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MinimumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + minimumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7635,43 +7925,62 @@ private constructor( * The Price Interval resource represents a period of time for which a price will bill on a * subscription. A subscription’s price intervals define its billing behavior. */ - @NoAutoDetect class PriceInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("filter") - @ExcludeMissing - private val filter: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_transitions") - @ExcludeMissing - private val fixedFeeQuantityTransitions: JsonField> = - JsonMissing.of(), - @JsonProperty("price") - @ExcludeMissing - private val price: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_customer_ids") - @ExcludeMissing - private val usageCustomerIds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billingCycleDay: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val endDate: JsonField, + private val filter: JsonField, + private val fixedFeeQuantityTransitions: JsonField>, + private val price: JsonField, + private val startDate: JsonField, + private val usageCustomerIds: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("filter") @ExcludeMissing filter: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_transitions") + @ExcludeMissing + fixedFeeQuantityTransitions: JsonField> = + JsonMissing.of(), + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_customer_ids") + @ExcludeMissing + usageCustomerIds: JsonField> = JsonMissing.of(), + ) : this( + id, + billingCycleDay, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + endDate, + filter, + fixedFeeQuantityTransitions, + price, + startDate, + usageCustomerIds, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -7869,29 +8178,15 @@ private constructor( @ExcludeMissing fun _usageCustomerIds(): JsonField> = usageCustomerIds + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PriceInterval = apply { - if (validated) { - return@apply - } - - id() - billingCycleDay() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - endDate() - filter() - fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } - price().validate() - startDate() - usageCustomerIds() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8376,27 +8671,51 @@ private constructor( checkRequired("price", price), checkRequired("startDate", startDate), checkRequired("usageCustomerIds", usageCustomerIds).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): PriceInterval = apply { + if (validated) { + return@apply + } + + id() + billingCycleDay() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + endDate() + filter() + fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } + price().validate() + startDate() + usageCustomerIds() + validated = true + } + class FixedFeeQuantityTransition - @JsonCreator private constructor( - @JsonProperty("effective_date") - @ExcludeMissing - private val effectiveDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val effectiveDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("effective_date") + @ExcludeMissing + effectiveDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") + @ExcludeMissing + priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + ) : this(effectiveDate, priceId, quantity, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -8443,22 +8762,15 @@ private constructor( */ @JsonProperty("quantity") @ExcludeMissing fun _quantity(): JsonField = quantity + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantityTransition = apply { - if (validated) { - return@apply - } - - effectiveDate() - priceId() - quantity() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8572,10 +8884,23 @@ private constructor( checkRequired("effectiveDate", effectiveDate), checkRequired("priceId", priceId), checkRequired("quantity", quantity), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantityTransition = apply { + if (validated) { + return@apply + } + + effectiveDate() + priceId() + quantity() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8612,23 +8937,27 @@ private constructor( "PriceInterval{id=$id, billingCycleDay=$billingCycleDay, currentBillingPeriodEndDate=$currentBillingPeriodEndDate, currentBillingPeriodStartDate=$currentBillingPeriodStartDate, endDate=$endDate, filter=$filter, fixedFeeQuantityTransitions=$fixedFeeQuantityTransitions, price=$price, startDate=$startDate, usageCustomerIds=$usageCustomerIds, additionalProperties=$additionalProperties}" } - @NoAutoDetect class RedeemedCoupon - @JsonCreator private constructor( - @JsonProperty("coupon_id") - @ExcludeMissing - private val couponId: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val couponId: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("coupon_id") + @ExcludeMissing + couponId: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(couponId, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -8673,22 +9002,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): RedeemedCoupon = apply { - if (validated) { - return@apply - } - - couponId() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8799,10 +9121,23 @@ private constructor( checkRequired("couponId", couponId), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): RedeemedCoupon = apply { + if (validated) { + return@apply + } + + couponId() + endDate() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8924,17 +9259,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TrialInfo - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of() + ) : this(endDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -8951,20 +9288,15 @@ private constructor( @ExcludeMissing fun _endDate(): JsonField = endDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TrialInfo = apply { - if (validated) { - return@apply - } - - endDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9039,7 +9371,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): TrialInfo = - TrialInfo(checkRequired("endDate", endDate), additionalProperties.toImmutable()) + TrialInfo(checkRequired("endDate", endDate), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TrialInfo = apply { + if (validated) { + return@apply + } + + endDate() + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnschedulePendingPlanChangesParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnschedulePendingPlanChangesParams.kt index d7590a44..797f9f39 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnschedulePendingPlanChangesParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnschedulePendingPlanChangesParams.kt @@ -2,13 +2,15 @@ package com.withorb.api.models +import com.fasterxml.jackson.annotation.JsonAnyGetter +import com.fasterxml.jackson.annotation.JsonAnySetter +import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.toImmutable +import java.util.Collections import java.util.Objects import java.util.Optional @@ -18,7 +20,7 @@ private constructor( private val subscriptionId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: Map, + private val additionalBodyProperties: MutableMap, ) : Params { fun subscriptionId(): String = subscriptionId @@ -27,21 +29,15 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - fun _additionalBodyProperties(): Map = additionalBodyProperties - - @JvmSynthetic - internal fun _body(): Optional> = - Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) - - fun _pathParam(index: Int): String = - when (index) { - 0 -> subscriptionId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders + @JsonAnySetter + private fun putAdditionalBodyProperty(key: String, value: JsonValue) { + additionalBodyProperties.put(key, value) + } - override fun _queryParams(): QueryParams = additionalQueryParams + @JsonAnyGetter + @ExcludeMissing + fun _additionalBodyProperties(): Map = + Collections.unmodifiableMap(additionalBodyProperties) fun toBuilder() = Builder().from(this) @@ -60,7 +56,6 @@ private constructor( } /** A builder for [SubscriptionUnschedulePendingPlanChangesParams]. */ - @NoAutoDetect class Builder internal constructor() { private var subscriptionId: String? = null @@ -222,10 +217,24 @@ private constructor( checkRequired("subscriptionId", subscriptionId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toImmutable(), + additionalBodyProperties.toMutableMap(), ) } + @JvmSynthetic + internal fun _body(): Optional> = + Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) + + fun _pathParam(index: Int): String = + when (index) { + 0 -> subscriptionId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnschedulePendingPlanChangesResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnschedulePendingPlanChangesResponse.kt index ce101429..afc38e04 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnschedulePendingPlanChangesResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnschedulePendingPlanChangesResponse.kt @@ -20,98 +20,142 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class SubscriptionUnschedulePendingPlanChangesResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("active_plan_phase_order") - @ExcludeMissing - private val activePlanPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_intervals") - @ExcludeMissing - private val adjustmentIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_anchor_configuration") - @ExcludeMissing - private val billingCycleAnchorConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("default_invoice_memo") - @ExcludeMissing - private val defaultInvoiceMemo: JsonField = JsonMissing.of(), - @JsonProperty("discount_intervals") - @ExcludeMissing - private val discountIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_schedule") - @ExcludeMissing - private val fixedFeeQuantitySchedule: JsonField> = - JsonMissing.of(), - @JsonProperty("invoicing_threshold") - @ExcludeMissing - private val invoicingThreshold: JsonField = JsonMissing.of(), - @JsonProperty("maximum_intervals") - @ExcludeMissing - private val maximumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum_intervals") - @ExcludeMissing - private val minimumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("plan") @ExcludeMissing private val plan: JsonField = JsonMissing.of(), - @JsonProperty("price_intervals") - @ExcludeMissing - private val priceIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("redeemed_coupon") - @ExcludeMissing - private val redeemedCoupon: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("trial_info") - @ExcludeMissing - private val trialInfo: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val activePlanPhaseOrder: JsonField, + private val adjustmentIntervals: JsonField>, + private val autoCollection: JsonField, + private val billingCycleAnchorConfiguration: JsonField, + private val billingCycleDay: JsonField, + private val createdAt: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val customer: JsonField, + private val defaultInvoiceMemo: JsonField, + private val discountIntervals: JsonField>, + private val endDate: JsonField, + private val fixedFeeQuantitySchedule: JsonField>, + private val invoicingThreshold: JsonField, + private val maximumIntervals: JsonField>, + private val metadata: JsonField, + private val minimumIntervals: JsonField>, + private val netTerms: JsonField, + private val plan: JsonField, + private val priceIntervals: JsonField>, + private val redeemedCoupon: JsonField, + private val startDate: JsonField, + private val status: JsonField, + private val trialInfo: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("active_plan_phase_order") + @ExcludeMissing + activePlanPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_intervals") + @ExcludeMissing + adjustmentIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_anchor_configuration") + @ExcludeMissing + billingCycleAnchorConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("customer") @ExcludeMissing customer: JsonField = JsonMissing.of(), + @JsonProperty("default_invoice_memo") + @ExcludeMissing + defaultInvoiceMemo: JsonField = JsonMissing.of(), + @JsonProperty("discount_intervals") + @ExcludeMissing + discountIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_schedule") + @ExcludeMissing + fixedFeeQuantitySchedule: JsonField> = JsonMissing.of(), + @JsonProperty("invoicing_threshold") + @ExcludeMissing + invoicingThreshold: JsonField = JsonMissing.of(), + @JsonProperty("maximum_intervals") + @ExcludeMissing + maximumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("metadata") @ExcludeMissing metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum_intervals") + @ExcludeMissing + minimumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("plan") @ExcludeMissing plan: JsonField = JsonMissing.of(), + @JsonProperty("price_intervals") + @ExcludeMissing + priceIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("redeemed_coupon") + @ExcludeMissing + redeemedCoupon: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + @JsonProperty("trial_info") + @ExcludeMissing + trialInfo: JsonField = JsonMissing.of(), + ) : this( + id, + activePlanPhaseOrder, + adjustmentIntervals, + autoCollection, + billingCycleAnchorConfiguration, + billingCycleDay, + createdAt, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + customer, + defaultInvoiceMemo, + discountIntervals, + endDate, + fixedFeeQuantitySchedule, + invoicingThreshold, + maximumIntervals, + metadata, + minimumIntervals, + netTerms, + plan, + priceIntervals, + redeemedCoupon, + startDate, + status, + trialInfo, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -566,44 +610,15 @@ private constructor( */ @JsonProperty("trial_info") @ExcludeMissing fun _trialInfo(): JsonField = trialInfo + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): SubscriptionUnschedulePendingPlanChangesResponse = apply { - if (validated) { - return@apply - } - - id() - activePlanPhaseOrder() - adjustmentIntervals().forEach { it.validate() } - autoCollection() - billingCycleAnchorConfiguration().validate() - billingCycleDay() - createdAt() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - customer().validate() - defaultInvoiceMemo() - discountIntervals().forEach { it.validate() } - endDate() - fixedFeeQuantitySchedule().forEach { it.validate() } - invoicingThreshold() - maximumIntervals().forEach { it.validate() } - metadata().validate() - minimumIntervals().forEach { it.validate() } - netTerms() - plan().validate() - priceIntervals().forEach { it.validate() } - redeemedCoupon().ifPresent { it.validate() } - startDate() - status() - trialInfo().validate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1351,31 +1366,72 @@ private constructor( checkRequired("startDate", startDate), checkRequired("status", status), checkRequired("trialInfo", trialInfo), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): SubscriptionUnschedulePendingPlanChangesResponse = apply { + if (validated) { + return@apply + } + + id() + activePlanPhaseOrder() + adjustmentIntervals().forEach { it.validate() } + autoCollection() + billingCycleAnchorConfiguration().validate() + billingCycleDay() + createdAt() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + customer().validate() + defaultInvoiceMemo() + discountIntervals().forEach { it.validate() } + endDate() + fixedFeeQuantitySchedule().forEach { it.validate() } + invoicingThreshold() + maximumIntervals().forEach { it.validate() } + metadata().validate() + minimumIntervals().forEach { it.validate() } + netTerms() + plan().validate() + priceIntervals().forEach { it.validate() } + redeemedCoupon().ifPresent { it.validate() } + startDate() + status() + trialInfo().validate() + validated = true + } + class AdjustmentInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment") - @ExcludeMissing - private val adjustment: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustment: JsonField, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment") + @ExcludeMissing + adjustment: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(id, adjustment, appliesToPriceIntervalIds, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -1458,24 +1514,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AdjustmentInterval = apply { - if (validated) { - return@apply - } - - id() - adjustment().validate() - appliesToPriceIntervalIds() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1679,10 +1726,25 @@ private constructor( }, checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AdjustmentInterval = apply { + if (validated) { + return@apply + } + + id() + adjustment().validate() + appliesToPriceIntervalIds() + endDate() + startDate() + validated = true + } + @JsonDeserialize(using = Adjustment.Deserializer::class) @JsonSerialize(using = Adjustment.Serializer::class) class Adjustment @@ -1971,35 +2033,50 @@ private constructor( } } - @NoAutoDetect class PlanPhaseUsageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + usageDiscount, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2126,26 +2203,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseUsageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2383,10 +2449,27 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseUsageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + usageDiscount() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2507,35 +2590,50 @@ private constructor( "PlanPhaseUsageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, usageDiscount=$usageDiscount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseAmountDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amountDiscount, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2662,26 +2760,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseAmountDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amountDiscount() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2919,10 +3006,27 @@ private constructor( checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseAmountDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amountDiscount() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3043,35 +3147,50 @@ private constructor( "PlanPhaseAmountDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhasePercentageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val percentageDiscount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + percentageDiscount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3199,26 +3318,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhasePercentageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - percentageDiscount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3458,10 +3566,27 @@ private constructor( checkRequired("percentageDiscount", percentageDiscount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhasePercentageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + percentageDiscount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3582,38 +3707,55 @@ private constructor( "PlanPhasePercentageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, percentageDiscount=$percentageDiscount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMinimumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val itemId: JsonField, + private val minimumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + itemId, + minimumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3757,27 +3899,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMinimumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - itemId() - minimumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4031,10 +4161,28 @@ private constructor( checkRequired("minimumAmount", minimumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMinimumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + itemId() + minimumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4155,35 +4303,50 @@ private constructor( "PlanPhaseMinimumAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, itemId=$itemId, minimumAmount=$minimumAmount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMaximumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val maximumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + maximumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4310,26 +4473,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMaximumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - maximumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4566,10 +4718,27 @@ private constructor( checkRequired("maximumAmount", maximumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMaximumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + maximumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4709,19 +4878,21 @@ private constructor( "AdjustmentInterval{id=$id, adjustment=$adjustment, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleAnchorConfiguration - @JsonCreator private constructor( - @JsonProperty("day") @ExcludeMissing private val day: JsonField = JsonMissing.of(), - @JsonProperty("month") - @ExcludeMissing - private val month: JsonField = JsonMissing.of(), - @JsonProperty("year") @ExcludeMissing private val year: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val day: JsonField, + private val month: JsonField, + private val year: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("day") @ExcludeMissing day: JsonField = JsonMissing.of(), + @JsonProperty("month") @ExcludeMissing month: JsonField = JsonMissing.of(), + @JsonProperty("year") @ExcludeMissing year: JsonField = JsonMissing.of(), + ) : this(day, month, year, mutableMapOf()) + /** * The day of the month on which the billing cycle is anchored. If the maximum number of * days in a month is greater than this value, the last day of the month is the billing @@ -4772,22 +4943,15 @@ private constructor( */ @JsonProperty("year") @ExcludeMissing fun _year(): JsonField = year + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleAnchorConfiguration = apply { - if (validated) { - return@apply - } - - day() - month() - year() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4926,10 +5090,23 @@ private constructor( checkRequired("day", day), month, year, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleAnchorConfiguration = apply { + if (validated) { + return@apply + } + + day() + month() + year() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5125,32 +5302,47 @@ private constructor( } } - @NoAutoDetect class AmountDiscountInterval - @JsonCreator private constructor( - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + amountDiscount, + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + mutableMapOf(), + ) + /** * Only available if discount_type is `amount`. * @@ -5264,25 +5456,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AmountDiscountInterval = apply { - if (validated) { - return@apply - } - - amountDiscount() - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5496,10 +5678,26 @@ private constructor( checkRequired("discountType", discountType), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AmountDiscountInterval = apply { + if (validated) { + return@apply + } + + amountDiscount() + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -5618,32 +5816,47 @@ private constructor( "AmountDiscountInterval{amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PercentageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val percentageDiscount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + percentageDiscount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -5757,25 +5970,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PercentageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - percentageDiscount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5993,10 +6196,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("percentageDiscount", percentageDiscount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PercentageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + percentageDiscount() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6115,32 +6334,47 @@ private constructor( "PercentageDiscountInterval{appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, percentageDiscount=$percentageDiscount, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class UsageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + usageDiscount, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -6255,25 +6489,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UsageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6489,10 +6713,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("startDate", startDate), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UsageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + usageDiscount() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6612,26 +6852,29 @@ private constructor( } } - @NoAutoDetect class FixedFeeQuantitySchedule - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(endDate, priceId, quantity, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -6689,23 +6932,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantitySchedule = apply { - if (validated) { - return@apply - } - - endDate() - priceId() - quantity() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6832,10 +7067,24 @@ private constructor( checkRequired("priceId", priceId), checkRequired("quantity", quantity), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantitySchedule = apply { + if (validated) { + return@apply + } + + endDate() + priceId() + quantity() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6854,29 +7103,42 @@ private constructor( "FixedFeeQuantitySchedule{endDate=$endDate, priceId=$priceId, quantity=$quantity, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MaximumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val maximumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + maximumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this maximum interval applies to. * @@ -6969,24 +7231,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MaximumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - maximumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7174,10 +7427,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("maximumAmount", maximumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MaximumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + maximumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7201,27 +7469,20 @@ private constructor( * dictionary. Individual keys can be removed by setting the value to `null`, and the entire * metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7265,7 +7526,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -7285,29 +7556,42 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class MinimumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val minimumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + minimumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this minimum interval applies to. * @@ -7400,24 +7684,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MinimumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - minimumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7605,10 +7880,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("minimumAmount", minimumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MinimumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + minimumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7631,43 +7921,62 @@ private constructor( * The Price Interval resource represents a period of time for which a price will bill on a * subscription. A subscription’s price intervals define its billing behavior. */ - @NoAutoDetect class PriceInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("filter") - @ExcludeMissing - private val filter: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_transitions") - @ExcludeMissing - private val fixedFeeQuantityTransitions: JsonField> = - JsonMissing.of(), - @JsonProperty("price") - @ExcludeMissing - private val price: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_customer_ids") - @ExcludeMissing - private val usageCustomerIds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billingCycleDay: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val endDate: JsonField, + private val filter: JsonField, + private val fixedFeeQuantityTransitions: JsonField>, + private val price: JsonField, + private val startDate: JsonField, + private val usageCustomerIds: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("filter") @ExcludeMissing filter: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_transitions") + @ExcludeMissing + fixedFeeQuantityTransitions: JsonField> = + JsonMissing.of(), + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_customer_ids") + @ExcludeMissing + usageCustomerIds: JsonField> = JsonMissing.of(), + ) : this( + id, + billingCycleDay, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + endDate, + filter, + fixedFeeQuantityTransitions, + price, + startDate, + usageCustomerIds, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -7865,29 +8174,15 @@ private constructor( @ExcludeMissing fun _usageCustomerIds(): JsonField> = usageCustomerIds + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PriceInterval = apply { - if (validated) { - return@apply - } - - id() - billingCycleDay() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - endDate() - filter() - fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } - price().validate() - startDate() - usageCustomerIds() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8372,27 +8667,51 @@ private constructor( checkRequired("price", price), checkRequired("startDate", startDate), checkRequired("usageCustomerIds", usageCustomerIds).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): PriceInterval = apply { + if (validated) { + return@apply + } + + id() + billingCycleDay() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + endDate() + filter() + fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } + price().validate() + startDate() + usageCustomerIds() + validated = true + } + class FixedFeeQuantityTransition - @JsonCreator private constructor( - @JsonProperty("effective_date") - @ExcludeMissing - private val effectiveDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val effectiveDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("effective_date") + @ExcludeMissing + effectiveDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") + @ExcludeMissing + priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + ) : this(effectiveDate, priceId, quantity, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -8439,22 +8758,15 @@ private constructor( */ @JsonProperty("quantity") @ExcludeMissing fun _quantity(): JsonField = quantity + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantityTransition = apply { - if (validated) { - return@apply - } - - effectiveDate() - priceId() - quantity() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8568,10 +8880,23 @@ private constructor( checkRequired("effectiveDate", effectiveDate), checkRequired("priceId", priceId), checkRequired("quantity", quantity), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantityTransition = apply { + if (validated) { + return@apply + } + + effectiveDate() + priceId() + quantity() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8608,23 +8933,27 @@ private constructor( "PriceInterval{id=$id, billingCycleDay=$billingCycleDay, currentBillingPeriodEndDate=$currentBillingPeriodEndDate, currentBillingPeriodStartDate=$currentBillingPeriodStartDate, endDate=$endDate, filter=$filter, fixedFeeQuantityTransitions=$fixedFeeQuantityTransitions, price=$price, startDate=$startDate, usageCustomerIds=$usageCustomerIds, additionalProperties=$additionalProperties}" } - @NoAutoDetect class RedeemedCoupon - @JsonCreator private constructor( - @JsonProperty("coupon_id") - @ExcludeMissing - private val couponId: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val couponId: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("coupon_id") + @ExcludeMissing + couponId: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(couponId, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -8669,22 +8998,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): RedeemedCoupon = apply { - if (validated) { - return@apply - } - - couponId() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8795,10 +9117,23 @@ private constructor( checkRequired("couponId", couponId), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): RedeemedCoupon = apply { + if (validated) { + return@apply + } + + couponId() + endDate() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8920,17 +9255,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TrialInfo - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of() + ) : this(endDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -8947,20 +9284,15 @@ private constructor( @ExcludeMissing fun _endDate(): JsonField = endDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TrialInfo = apply { - if (validated) { - return@apply - } - - endDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9035,7 +9367,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): TrialInfo = - TrialInfo(checkRequired("endDate", endDate), additionalProperties.toImmutable()) + TrialInfo(checkRequired("endDate", endDate), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TrialInfo = apply { + if (validated) { + return@apply + } + + endDate() + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateFixedFeeQuantityParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateFixedFeeQuantityParams.kt index 94fc2718..0c63d892 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateFixedFeeQuantityParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateFixedFeeQuantityParams.kt @@ -11,15 +11,13 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.LocalDate +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -134,202 +132,480 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body + fun toBuilder() = Builder().from(this) - fun _pathParam(index: Int): String = - when (index) { - 0 -> subscriptionId - else -> "" - } + companion object { - override fun _headers(): Headers = additionalHeaders + /** + * Returns a mutable builder for constructing an instance of + * [SubscriptionUpdateFixedFeeQuantityParams]. + * + * The following fields are required: + * ```java + * .subscriptionId() + * .priceId() + * .quantity() + * ``` + */ + @JvmStatic fun builder() = Builder() + } - override fun _queryParams(): QueryParams = additionalQueryParams + /** A builder for [SubscriptionUpdateFixedFeeQuantityParams]. */ + class Builder internal constructor() { - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("allow_invoice_credit_or_void") - @ExcludeMissing - private val allowInvoiceCreditOrVoid: JsonField = JsonMissing.of(), - @JsonProperty("change_option") - @ExcludeMissing - private val changeOption: JsonField = JsonMissing.of(), - @JsonProperty("effective_date") - @ExcludeMissing - private val effectiveDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { + private var subscriptionId: String? = null + private var body: Body.Builder = Body.builder() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from( + subscriptionUpdateFixedFeeQuantityParams: SubscriptionUpdateFixedFeeQuantityParams + ) = apply { + subscriptionId = subscriptionUpdateFixedFeeQuantityParams.subscriptionId + body = subscriptionUpdateFixedFeeQuantityParams.body.toBuilder() + additionalHeaders = + subscriptionUpdateFixedFeeQuantityParams.additionalHeaders.toBuilder() + additionalQueryParams = + subscriptionUpdateFixedFeeQuantityParams.additionalQueryParams.toBuilder() + } + + fun subscriptionId(subscriptionId: String) = apply { this.subscriptionId = subscriptionId } + + /** Price for which the quantity should be updated. Must be a fixed fee. */ + fun priceId(priceId: String) = apply { body.priceId(priceId) } /** - * Price for which the quantity should be updated. Must be a fixed fee. + * Sets [Builder.priceId] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * You should usually call [Builder.priceId] with a well-typed [String] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - fun priceId(): String = priceId.getRequired("price_id") + fun priceId(priceId: JsonField) = apply { body.priceId(priceId) } + + fun quantity(quantity: Double) = apply { body.quantity(quantity) } /** - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + * Sets [Builder.quantity] to an arbitrary JSON value. + * + * You should usually call [Builder.quantity] with a well-typed [Double] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - fun quantity(): Double = quantity.getRequired("quantity") + fun quantity(quantity: JsonField) = apply { body.quantity(quantity) } /** * If false, this request will fail if it would void an issued invoice or create a credit * note. Consider using this as a safety mechanism if you do not expect existing invoices to * be changed. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). */ - fun allowInvoiceCreditOrVoid(): Optional = - Optional.ofNullable( - allowInvoiceCreditOrVoid.getNullable("allow_invoice_credit_or_void") - ) + fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Boolean?) = apply { + body.allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid) + } /** - * Determines when the change takes effect. Note that if `effective_date` is specified, this - * defaults to `effective_date`. Otherwise, this defaults to `immediate` unless it's - * explicitly set to `upcoming_invoice`. + * Alias for [Builder.allowInvoiceCreditOrVoid]. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * This unboxed primitive overload exists for backwards compatibility. */ - fun changeOption(): Optional = - Optional.ofNullable(changeOption.getNullable("change_option")) + fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Boolean) = + allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid as Boolean?) /** - * The date that the quantity change should take effect, localized to the customer's - * timezone. Ifthis parameter is not passed in, the quantity change is effective according - * to `change_option`. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Alias for calling [Builder.allowInvoiceCreditOrVoid] with + * `allowInvoiceCreditOrVoid.orElse(null)`. */ - fun effectiveDate(): Optional = - Optional.ofNullable(effectiveDate.getNullable("effective_date")) + fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Optional) = + allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid.getOrNull()) /** - * Returns the raw JSON value of [priceId]. + * Sets [Builder.allowInvoiceCreditOrVoid] to an arbitrary JSON value. * - * Unlike [priceId], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.allowInvoiceCreditOrVoid] with a well-typed [Boolean] + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. */ - @JsonProperty("price_id") @ExcludeMissing fun _priceId(): JsonField = priceId + fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: JsonField) = apply { + body.allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid) + } /** - * Returns the raw JSON value of [quantity]. - * - * Unlike [quantity], this method doesn't throw if the JSON field has an unexpected type. + * Determines when the change takes effect. Note that if `effective_date` is specified, this + * defaults to `effective_date`. Otherwise, this defaults to `immediate` unless it's + * explicitly set to `upcoming_invoice`. */ - @JsonProperty("quantity") @ExcludeMissing fun _quantity(): JsonField = quantity + fun changeOption(changeOption: ChangeOption) = apply { body.changeOption(changeOption) } /** - * Returns the raw JSON value of [allowInvoiceCreditOrVoid]. + * Sets [Builder.changeOption] to an arbitrary JSON value. * - * Unlike [allowInvoiceCreditOrVoid], this method doesn't throw if the JSON field has an - * unexpected type. + * You should usually call [Builder.changeOption] with a well-typed [ChangeOption] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("allow_invoice_credit_or_void") - @ExcludeMissing - fun _allowInvoiceCreditOrVoid(): JsonField = allowInvoiceCreditOrVoid + fun changeOption(changeOption: JsonField) = apply { + body.changeOption(changeOption) + } /** - * Returns the raw JSON value of [changeOption]. - * - * Unlike [changeOption], this method doesn't throw if the JSON field has an unexpected - * type. + * The date that the quantity change should take effect, localized to the customer's + * timezone. Ifthis parameter is not passed in, the quantity change is effective according + * to `change_option`. */ - @JsonProperty("change_option") - @ExcludeMissing - fun _changeOption(): JsonField = changeOption + fun effectiveDate(effectiveDate: LocalDate?) = apply { body.effectiveDate(effectiveDate) } + + /** Alias for calling [Builder.effectiveDate] with `effectiveDate.orElse(null)`. */ + fun effectiveDate(effectiveDate: Optional) = + effectiveDate(effectiveDate.getOrNull()) /** - * Returns the raw JSON value of [effectiveDate]. + * Sets [Builder.effectiveDate] to an arbitrary JSON value. * - * Unlike [effectiveDate], this method doesn't throw if the JSON field has an unexpected - * type. + * You should usually call [Builder.effectiveDate] with a well-typed [LocalDate] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - @JsonProperty("effective_date") - @ExcludeMissing - fun _effectiveDate(): JsonField = effectiveDate + fun effectiveDate(effectiveDate: JsonField) = apply { + body.effectiveDate(effectiveDate) + } - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties + fun additionalBodyProperties(additionalBodyProperties: Map) = apply { + body.additionalProperties(additionalBodyProperties) + } - private var validated: Boolean = false + fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { + body.putAdditionalProperty(key, value) + } - fun validate(): Body = apply { - if (validated) { - return@apply + fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = + apply { + body.putAllAdditionalProperties(additionalBodyProperties) } - priceId() - quantity() - allowInvoiceCreditOrVoid() - changeOption() - effectiveDate() - validated = true - } + fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } - fun toBuilder() = Builder().from(this) + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + body.removeAllAdditionalProperties(keys) + } - companion object { + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .priceId() - * .quantity() - * ``` - */ - @JvmStatic fun builder() = Builder() + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) } - /** A builder for [Body]. */ - class Builder internal constructor() { + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) + } - private var priceId: JsonField? = null - private var quantity: JsonField? = null - private var allowInvoiceCreditOrVoid: JsonField = JsonMissing.of() - private var changeOption: JsonField = JsonMissing.of() - private var effectiveDate: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } - @JvmSynthetic - internal fun from(body: Body) = apply { - priceId = body.priceId - quantity = body.quantity - allowInvoiceCreditOrVoid = body.allowInvoiceCreditOrVoid - changeOption = body.changeOption - effectiveDate = body.effectiveDate - additionalProperties = body.additionalProperties.toMutableMap() - } + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - /** Price for which the quantity should be updated. Must be a fixed fee. */ - fun priceId(priceId: String) = priceId(JsonField.of(priceId)) + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - /** - * Sets [Builder.priceId] to an arbitrary JSON value. - * - * You should usually call [Builder.priceId] with a well-typed [String] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun priceId(priceId: JsonField) = apply { this.priceId = priceId } + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } - fun quantity(quantity: Double) = quantity(JsonField.of(quantity)) + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } + + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } + + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } + + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } + + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) + } + + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } + + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } + + /** + * Returns an immutable instance of [SubscriptionUpdateFixedFeeQuantityParams]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .subscriptionId() + * .priceId() + * .quantity() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): SubscriptionUpdateFixedFeeQuantityParams = + SubscriptionUpdateFixedFeeQuantityParams( + checkRequired("subscriptionId", subscriptionId), + body.build(), + additionalHeaders.build(), + additionalQueryParams.build(), + ) + } + + @JvmSynthetic internal fun _body(): Body = body + + fun _pathParam(index: Int): String = + when (index) { + 0 -> subscriptionId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body + private constructor( + private val priceId: JsonField, + private val quantity: JsonField, + private val allowInvoiceCreditOrVoid: JsonField, + private val changeOption: JsonField, + private val effectiveDate: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("allow_invoice_credit_or_void") + @ExcludeMissing + allowInvoiceCreditOrVoid: JsonField = JsonMissing.of(), + @JsonProperty("change_option") + @ExcludeMissing + changeOption: JsonField = JsonMissing.of(), + @JsonProperty("effective_date") + @ExcludeMissing + effectiveDate: JsonField = JsonMissing.of(), + ) : this( + priceId, + quantity, + allowInvoiceCreditOrVoid, + changeOption, + effectiveDate, + mutableMapOf(), + ) + + /** + * Price for which the quantity should be updated. Must be a fixed fee. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun priceId(): String = priceId.getRequired("price_id") + + /** + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun quantity(): Double = quantity.getRequired("quantity") + + /** + * If false, this request will fail if it would void an issued invoice or create a credit + * note. Consider using this as a safety mechanism if you do not expect existing invoices to + * be changed. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun allowInvoiceCreditOrVoid(): Optional = + Optional.ofNullable( + allowInvoiceCreditOrVoid.getNullable("allow_invoice_credit_or_void") + ) + + /** + * Determines when the change takes effect. Note that if `effective_date` is specified, this + * defaults to `effective_date`. Otherwise, this defaults to `immediate` unless it's + * explicitly set to `upcoming_invoice`. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun changeOption(): Optional = + Optional.ofNullable(changeOption.getNullable("change_option")) + + /** + * The date that the quantity change should take effect, localized to the customer's + * timezone. Ifthis parameter is not passed in, the quantity change is effective according + * to `change_option`. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun effectiveDate(): Optional = + Optional.ofNullable(effectiveDate.getNullable("effective_date")) + + /** + * Returns the raw JSON value of [priceId]. + * + * Unlike [priceId], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("price_id") @ExcludeMissing fun _priceId(): JsonField = priceId + + /** + * Returns the raw JSON value of [quantity]. + * + * Unlike [quantity], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("quantity") @ExcludeMissing fun _quantity(): JsonField = quantity + + /** + * Returns the raw JSON value of [allowInvoiceCreditOrVoid]. + * + * Unlike [allowInvoiceCreditOrVoid], this method doesn't throw if the JSON field has an + * unexpected type. + */ + @JsonProperty("allow_invoice_credit_or_void") + @ExcludeMissing + fun _allowInvoiceCreditOrVoid(): JsonField = allowInvoiceCreditOrVoid + + /** + * Returns the raw JSON value of [changeOption]. + * + * Unlike [changeOption], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("change_option") + @ExcludeMissing + fun _changeOption(): JsonField = changeOption + + /** + * Returns the raw JSON value of [effectiveDate]. + * + * Unlike [effectiveDate], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("effective_date") + @ExcludeMissing + fun _effectiveDate(): JsonField = effectiveDate + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .priceId() + * .quantity() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var priceId: JsonField? = null + private var quantity: JsonField? = null + private var allowInvoiceCreditOrVoid: JsonField = JsonMissing.of() + private var changeOption: JsonField = JsonMissing.of() + private var effectiveDate: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + priceId = body.priceId + quantity = body.quantity + allowInvoiceCreditOrVoid = body.allowInvoiceCreditOrVoid + changeOption = body.changeOption + effectiveDate = body.effectiveDate + additionalProperties = body.additionalProperties.toMutableMap() + } + + /** Price for which the quantity should be updated. Must be a fixed fee. */ + fun priceId(priceId: String) = priceId(JsonField.of(priceId)) + + /** + * Sets [Builder.priceId] to an arbitrary JSON value. + * + * You should usually call [Builder.priceId] with a well-typed [String] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun priceId(priceId: JsonField) = apply { this.priceId = priceId } + + fun quantity(quantity: Double) = quantity(JsonField.of(quantity)) /** * Sets [Builder.quantity] to an arbitrary JSON value. @@ -454,10 +730,25 @@ private constructor( allowInvoiceCreditOrVoid, changeOption, effectiveDate, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Body = apply { + if (validated) { + return@apply + } + + priceId() + quantity() + allowInvoiceCreditOrVoid() + changeOption() + effectiveDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -476,283 +767,6 @@ private constructor( "Body{priceId=$priceId, quantity=$quantity, allowInvoiceCreditOrVoid=$allowInvoiceCreditOrVoid, changeOption=$changeOption, effectiveDate=$effectiveDate, additionalProperties=$additionalProperties}" } - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of - * [SubscriptionUpdateFixedFeeQuantityParams]. - * - * The following fields are required: - * ```java - * .subscriptionId() - * .priceId() - * .quantity() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [SubscriptionUpdateFixedFeeQuantityParams]. */ - @NoAutoDetect - class Builder internal constructor() { - - private var subscriptionId: String? = null - private var body: Body.Builder = Body.builder() - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() - - @JvmSynthetic - internal fun from( - subscriptionUpdateFixedFeeQuantityParams: SubscriptionUpdateFixedFeeQuantityParams - ) = apply { - subscriptionId = subscriptionUpdateFixedFeeQuantityParams.subscriptionId - body = subscriptionUpdateFixedFeeQuantityParams.body.toBuilder() - additionalHeaders = - subscriptionUpdateFixedFeeQuantityParams.additionalHeaders.toBuilder() - additionalQueryParams = - subscriptionUpdateFixedFeeQuantityParams.additionalQueryParams.toBuilder() - } - - fun subscriptionId(subscriptionId: String) = apply { this.subscriptionId = subscriptionId } - - /** Price for which the quantity should be updated. Must be a fixed fee. */ - fun priceId(priceId: String) = apply { body.priceId(priceId) } - - /** - * Sets [Builder.priceId] to an arbitrary JSON value. - * - * You should usually call [Builder.priceId] with a well-typed [String] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun priceId(priceId: JsonField) = apply { body.priceId(priceId) } - - fun quantity(quantity: Double) = apply { body.quantity(quantity) } - - /** - * Sets [Builder.quantity] to an arbitrary JSON value. - * - * You should usually call [Builder.quantity] with a well-typed [Double] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun quantity(quantity: JsonField) = apply { body.quantity(quantity) } - - /** - * If false, this request will fail if it would void an issued invoice or create a credit - * note. Consider using this as a safety mechanism if you do not expect existing invoices to - * be changed. - */ - fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Boolean?) = apply { - body.allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid) - } - - /** - * Alias for [Builder.allowInvoiceCreditOrVoid]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Boolean) = - allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid as Boolean?) - - /** - * Alias for calling [Builder.allowInvoiceCreditOrVoid] with - * `allowInvoiceCreditOrVoid.orElse(null)`. - */ - fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: Optional) = - allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid.getOrNull()) - - /** - * Sets [Builder.allowInvoiceCreditOrVoid] to an arbitrary JSON value. - * - * You should usually call [Builder.allowInvoiceCreditOrVoid] with a well-typed [Boolean] - * value instead. This method is primarily for setting the field to an undocumented or not - * yet supported value. - */ - fun allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid: JsonField) = apply { - body.allowInvoiceCreditOrVoid(allowInvoiceCreditOrVoid) - } - - /** - * Determines when the change takes effect. Note that if `effective_date` is specified, this - * defaults to `effective_date`. Otherwise, this defaults to `immediate` unless it's - * explicitly set to `upcoming_invoice`. - */ - fun changeOption(changeOption: ChangeOption) = apply { body.changeOption(changeOption) } - - /** - * Sets [Builder.changeOption] to an arbitrary JSON value. - * - * You should usually call [Builder.changeOption] with a well-typed [ChangeOption] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun changeOption(changeOption: JsonField) = apply { - body.changeOption(changeOption) - } - - /** - * The date that the quantity change should take effect, localized to the customer's - * timezone. Ifthis parameter is not passed in, the quantity change is effective according - * to `change_option`. - */ - fun effectiveDate(effectiveDate: LocalDate?) = apply { body.effectiveDate(effectiveDate) } - - /** Alias for calling [Builder.effectiveDate] with `effectiveDate.orElse(null)`. */ - fun effectiveDate(effectiveDate: Optional) = - effectiveDate(effectiveDate.getOrNull()) - - /** - * Sets [Builder.effectiveDate] to an arbitrary JSON value. - * - * You should usually call [Builder.effectiveDate] with a well-typed [LocalDate] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun effectiveDate(effectiveDate: JsonField) = apply { - body.effectiveDate(effectiveDate) - } - - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { - body.additionalProperties(additionalBodyProperties) - } - - fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - body.putAdditionalProperty(key, value) - } - - fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = - apply { - body.putAllAdditionalProperties(additionalBodyProperties) - } - - fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } - - fun removeAllAdditionalBodyProperties(keys: Set) = apply { - body.removeAllAdditionalProperties(keys) - } - - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } - - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } - - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } - - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } - - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } - - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } - - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } - - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } - - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } - - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } - - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } - - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } - - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } - - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } - - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } - - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) - } - - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } - - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) - } - - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) - } - - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } - - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } - - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) - } - - /** - * Returns an immutable instance of [SubscriptionUpdateFixedFeeQuantityParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .subscriptionId() - * .priceId() - * .quantity() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): SubscriptionUpdateFixedFeeQuantityParams = - SubscriptionUpdateFixedFeeQuantityParams( - checkRequired("subscriptionId", subscriptionId), - body.build(), - additionalHeaders.build(), - additionalQueryParams.build(), - ) - } - /** * Determines when the change takes effect. Note that if `effective_date` is specified, this * defaults to `effective_date`. Otherwise, this defaults to `immediate` unless it's explicitly diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateFixedFeeQuantityResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateFixedFeeQuantityResponse.kt index bb2604b2..fe598650 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateFixedFeeQuantityResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateFixedFeeQuantityResponse.kt @@ -20,98 +20,142 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class SubscriptionUpdateFixedFeeQuantityResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("active_plan_phase_order") - @ExcludeMissing - private val activePlanPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_intervals") - @ExcludeMissing - private val adjustmentIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_anchor_configuration") - @ExcludeMissing - private val billingCycleAnchorConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("default_invoice_memo") - @ExcludeMissing - private val defaultInvoiceMemo: JsonField = JsonMissing.of(), - @JsonProperty("discount_intervals") - @ExcludeMissing - private val discountIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_schedule") - @ExcludeMissing - private val fixedFeeQuantitySchedule: JsonField> = - JsonMissing.of(), - @JsonProperty("invoicing_threshold") - @ExcludeMissing - private val invoicingThreshold: JsonField = JsonMissing.of(), - @JsonProperty("maximum_intervals") - @ExcludeMissing - private val maximumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum_intervals") - @ExcludeMissing - private val minimumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("plan") @ExcludeMissing private val plan: JsonField = JsonMissing.of(), - @JsonProperty("price_intervals") - @ExcludeMissing - private val priceIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("redeemed_coupon") - @ExcludeMissing - private val redeemedCoupon: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("trial_info") - @ExcludeMissing - private val trialInfo: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val activePlanPhaseOrder: JsonField, + private val adjustmentIntervals: JsonField>, + private val autoCollection: JsonField, + private val billingCycleAnchorConfiguration: JsonField, + private val billingCycleDay: JsonField, + private val createdAt: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val customer: JsonField, + private val defaultInvoiceMemo: JsonField, + private val discountIntervals: JsonField>, + private val endDate: JsonField, + private val fixedFeeQuantitySchedule: JsonField>, + private val invoicingThreshold: JsonField, + private val maximumIntervals: JsonField>, + private val metadata: JsonField, + private val minimumIntervals: JsonField>, + private val netTerms: JsonField, + private val plan: JsonField, + private val priceIntervals: JsonField>, + private val redeemedCoupon: JsonField, + private val startDate: JsonField, + private val status: JsonField, + private val trialInfo: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("active_plan_phase_order") + @ExcludeMissing + activePlanPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_intervals") + @ExcludeMissing + adjustmentIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_anchor_configuration") + @ExcludeMissing + billingCycleAnchorConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("customer") @ExcludeMissing customer: JsonField = JsonMissing.of(), + @JsonProperty("default_invoice_memo") + @ExcludeMissing + defaultInvoiceMemo: JsonField = JsonMissing.of(), + @JsonProperty("discount_intervals") + @ExcludeMissing + discountIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_schedule") + @ExcludeMissing + fixedFeeQuantitySchedule: JsonField> = JsonMissing.of(), + @JsonProperty("invoicing_threshold") + @ExcludeMissing + invoicingThreshold: JsonField = JsonMissing.of(), + @JsonProperty("maximum_intervals") + @ExcludeMissing + maximumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("metadata") @ExcludeMissing metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum_intervals") + @ExcludeMissing + minimumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("plan") @ExcludeMissing plan: JsonField = JsonMissing.of(), + @JsonProperty("price_intervals") + @ExcludeMissing + priceIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("redeemed_coupon") + @ExcludeMissing + redeemedCoupon: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + @JsonProperty("trial_info") + @ExcludeMissing + trialInfo: JsonField = JsonMissing.of(), + ) : this( + id, + activePlanPhaseOrder, + adjustmentIntervals, + autoCollection, + billingCycleAnchorConfiguration, + billingCycleDay, + createdAt, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + customer, + defaultInvoiceMemo, + discountIntervals, + endDate, + fixedFeeQuantitySchedule, + invoicingThreshold, + maximumIntervals, + metadata, + minimumIntervals, + netTerms, + plan, + priceIntervals, + redeemedCoupon, + startDate, + status, + trialInfo, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -566,44 +610,15 @@ private constructor( */ @JsonProperty("trial_info") @ExcludeMissing fun _trialInfo(): JsonField = trialInfo + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): SubscriptionUpdateFixedFeeQuantityResponse = apply { - if (validated) { - return@apply - } - - id() - activePlanPhaseOrder() - adjustmentIntervals().forEach { it.validate() } - autoCollection() - billingCycleAnchorConfiguration().validate() - billingCycleDay() - createdAt() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - customer().validate() - defaultInvoiceMemo() - discountIntervals().forEach { it.validate() } - endDate() - fixedFeeQuantitySchedule().forEach { it.validate() } - invoicingThreshold() - maximumIntervals().forEach { it.validate() } - metadata().validate() - minimumIntervals().forEach { it.validate() } - netTerms() - plan().validate() - priceIntervals().forEach { it.validate() } - redeemedCoupon().ifPresent { it.validate() } - startDate() - status() - trialInfo().validate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1347,31 +1362,72 @@ private constructor( checkRequired("startDate", startDate), checkRequired("status", status), checkRequired("trialInfo", trialInfo), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): SubscriptionUpdateFixedFeeQuantityResponse = apply { + if (validated) { + return@apply + } + + id() + activePlanPhaseOrder() + adjustmentIntervals().forEach { it.validate() } + autoCollection() + billingCycleAnchorConfiguration().validate() + billingCycleDay() + createdAt() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + customer().validate() + defaultInvoiceMemo() + discountIntervals().forEach { it.validate() } + endDate() + fixedFeeQuantitySchedule().forEach { it.validate() } + invoicingThreshold() + maximumIntervals().forEach { it.validate() } + metadata().validate() + minimumIntervals().forEach { it.validate() } + netTerms() + plan().validate() + priceIntervals().forEach { it.validate() } + redeemedCoupon().ifPresent { it.validate() } + startDate() + status() + trialInfo().validate() + validated = true + } + class AdjustmentInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment") - @ExcludeMissing - private val adjustment: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustment: JsonField, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment") + @ExcludeMissing + adjustment: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(id, adjustment, appliesToPriceIntervalIds, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -1454,24 +1510,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AdjustmentInterval = apply { - if (validated) { - return@apply - } - - id() - adjustment().validate() - appliesToPriceIntervalIds() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1675,10 +1722,25 @@ private constructor( }, checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AdjustmentInterval = apply { + if (validated) { + return@apply + } + + id() + adjustment().validate() + appliesToPriceIntervalIds() + endDate() + startDate() + validated = true + } + @JsonDeserialize(using = Adjustment.Deserializer::class) @JsonSerialize(using = Adjustment.Serializer::class) class Adjustment @@ -1967,35 +2029,50 @@ private constructor( } } - @NoAutoDetect class PlanPhaseUsageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + usageDiscount, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2122,26 +2199,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseUsageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2379,10 +2445,27 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseUsageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + usageDiscount() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2503,35 +2586,50 @@ private constructor( "PlanPhaseUsageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, usageDiscount=$usageDiscount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseAmountDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amountDiscount, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2658,26 +2756,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseAmountDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amountDiscount() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2915,10 +3002,27 @@ private constructor( checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseAmountDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amountDiscount() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3039,35 +3143,50 @@ private constructor( "PlanPhaseAmountDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhasePercentageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val percentageDiscount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + percentageDiscount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3195,26 +3314,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhasePercentageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - percentageDiscount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3454,10 +3562,27 @@ private constructor( checkRequired("percentageDiscount", percentageDiscount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhasePercentageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + percentageDiscount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3578,38 +3703,55 @@ private constructor( "PlanPhasePercentageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, percentageDiscount=$percentageDiscount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMinimumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val itemId: JsonField, + private val minimumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + itemId, + minimumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3753,27 +3895,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMinimumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - itemId() - minimumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4027,10 +4157,28 @@ private constructor( checkRequired("minimumAmount", minimumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMinimumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + itemId() + minimumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4151,35 +4299,50 @@ private constructor( "PlanPhaseMinimumAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, itemId=$itemId, minimumAmount=$minimumAmount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMaximumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val maximumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + maximumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4306,26 +4469,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMaximumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - maximumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4562,10 +4714,27 @@ private constructor( checkRequired("maximumAmount", maximumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMaximumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + maximumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4705,19 +4874,21 @@ private constructor( "AdjustmentInterval{id=$id, adjustment=$adjustment, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleAnchorConfiguration - @JsonCreator private constructor( - @JsonProperty("day") @ExcludeMissing private val day: JsonField = JsonMissing.of(), - @JsonProperty("month") - @ExcludeMissing - private val month: JsonField = JsonMissing.of(), - @JsonProperty("year") @ExcludeMissing private val year: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val day: JsonField, + private val month: JsonField, + private val year: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("day") @ExcludeMissing day: JsonField = JsonMissing.of(), + @JsonProperty("month") @ExcludeMissing month: JsonField = JsonMissing.of(), + @JsonProperty("year") @ExcludeMissing year: JsonField = JsonMissing.of(), + ) : this(day, month, year, mutableMapOf()) + /** * The day of the month on which the billing cycle is anchored. If the maximum number of * days in a month is greater than this value, the last day of the month is the billing @@ -4768,22 +4939,15 @@ private constructor( */ @JsonProperty("year") @ExcludeMissing fun _year(): JsonField = year + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleAnchorConfiguration = apply { - if (validated) { - return@apply - } - - day() - month() - year() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4922,10 +5086,23 @@ private constructor( checkRequired("day", day), month, year, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleAnchorConfiguration = apply { + if (validated) { + return@apply + } + + day() + month() + year() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5121,32 +5298,47 @@ private constructor( } } - @NoAutoDetect class AmountDiscountInterval - @JsonCreator private constructor( - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + amountDiscount, + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + mutableMapOf(), + ) + /** * Only available if discount_type is `amount`. * @@ -5260,25 +5452,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AmountDiscountInterval = apply { - if (validated) { - return@apply - } - - amountDiscount() - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5492,10 +5674,26 @@ private constructor( checkRequired("discountType", discountType), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AmountDiscountInterval = apply { + if (validated) { + return@apply + } + + amountDiscount() + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -5614,32 +5812,47 @@ private constructor( "AmountDiscountInterval{amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PercentageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val percentageDiscount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + percentageDiscount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -5753,25 +5966,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PercentageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - percentageDiscount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5989,10 +6192,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("percentageDiscount", percentageDiscount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PercentageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + percentageDiscount() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6111,32 +6330,47 @@ private constructor( "PercentageDiscountInterval{appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, percentageDiscount=$percentageDiscount, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class UsageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + usageDiscount, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -6251,25 +6485,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UsageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6485,10 +6709,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("startDate", startDate), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UsageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + usageDiscount() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6608,26 +6848,29 @@ private constructor( } } - @NoAutoDetect class FixedFeeQuantitySchedule - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(endDate, priceId, quantity, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -6685,23 +6928,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantitySchedule = apply { - if (validated) { - return@apply - } - - endDate() - priceId() - quantity() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6828,10 +7063,24 @@ private constructor( checkRequired("priceId", priceId), checkRequired("quantity", quantity), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantitySchedule = apply { + if (validated) { + return@apply + } + + endDate() + priceId() + quantity() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6850,29 +7099,42 @@ private constructor( "FixedFeeQuantitySchedule{endDate=$endDate, priceId=$priceId, quantity=$quantity, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MaximumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val maximumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + maximumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this maximum interval applies to. * @@ -6965,24 +7227,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MaximumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - maximumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7170,10 +7423,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("maximumAmount", maximumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MaximumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + maximumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7197,27 +7465,20 @@ private constructor( * dictionary. Individual keys can be removed by setting the value to `null`, and the entire * metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7261,7 +7522,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -7281,29 +7552,42 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class MinimumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val minimumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + minimumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this minimum interval applies to. * @@ -7396,24 +7680,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MinimumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - minimumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7601,10 +7876,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("minimumAmount", minimumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MinimumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + minimumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7627,43 +7917,62 @@ private constructor( * The Price Interval resource represents a period of time for which a price will bill on a * subscription. A subscription’s price intervals define its billing behavior. */ - @NoAutoDetect class PriceInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("filter") - @ExcludeMissing - private val filter: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_transitions") - @ExcludeMissing - private val fixedFeeQuantityTransitions: JsonField> = - JsonMissing.of(), - @JsonProperty("price") - @ExcludeMissing - private val price: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_customer_ids") - @ExcludeMissing - private val usageCustomerIds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billingCycleDay: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val endDate: JsonField, + private val filter: JsonField, + private val fixedFeeQuantityTransitions: JsonField>, + private val price: JsonField, + private val startDate: JsonField, + private val usageCustomerIds: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("filter") @ExcludeMissing filter: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_transitions") + @ExcludeMissing + fixedFeeQuantityTransitions: JsonField> = + JsonMissing.of(), + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_customer_ids") + @ExcludeMissing + usageCustomerIds: JsonField> = JsonMissing.of(), + ) : this( + id, + billingCycleDay, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + endDate, + filter, + fixedFeeQuantityTransitions, + price, + startDate, + usageCustomerIds, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -7861,29 +8170,15 @@ private constructor( @ExcludeMissing fun _usageCustomerIds(): JsonField> = usageCustomerIds + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PriceInterval = apply { - if (validated) { - return@apply - } - - id() - billingCycleDay() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - endDate() - filter() - fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } - price().validate() - startDate() - usageCustomerIds() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8368,27 +8663,51 @@ private constructor( checkRequired("price", price), checkRequired("startDate", startDate), checkRequired("usageCustomerIds", usageCustomerIds).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): PriceInterval = apply { + if (validated) { + return@apply + } + + id() + billingCycleDay() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + endDate() + filter() + fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } + price().validate() + startDate() + usageCustomerIds() + validated = true + } + class FixedFeeQuantityTransition - @JsonCreator private constructor( - @JsonProperty("effective_date") - @ExcludeMissing - private val effectiveDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val effectiveDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("effective_date") + @ExcludeMissing + effectiveDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") + @ExcludeMissing + priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + ) : this(effectiveDate, priceId, quantity, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -8435,22 +8754,15 @@ private constructor( */ @JsonProperty("quantity") @ExcludeMissing fun _quantity(): JsonField = quantity + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantityTransition = apply { - if (validated) { - return@apply - } - - effectiveDate() - priceId() - quantity() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8564,10 +8876,23 @@ private constructor( checkRequired("effectiveDate", effectiveDate), checkRequired("priceId", priceId), checkRequired("quantity", quantity), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantityTransition = apply { + if (validated) { + return@apply + } + + effectiveDate() + priceId() + quantity() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8604,23 +8929,27 @@ private constructor( "PriceInterval{id=$id, billingCycleDay=$billingCycleDay, currentBillingPeriodEndDate=$currentBillingPeriodEndDate, currentBillingPeriodStartDate=$currentBillingPeriodStartDate, endDate=$endDate, filter=$filter, fixedFeeQuantityTransitions=$fixedFeeQuantityTransitions, price=$price, startDate=$startDate, usageCustomerIds=$usageCustomerIds, additionalProperties=$additionalProperties}" } - @NoAutoDetect class RedeemedCoupon - @JsonCreator private constructor( - @JsonProperty("coupon_id") - @ExcludeMissing - private val couponId: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val couponId: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("coupon_id") + @ExcludeMissing + couponId: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(couponId, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -8665,22 +8994,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): RedeemedCoupon = apply { - if (validated) { - return@apply - } - - couponId() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8791,10 +9113,23 @@ private constructor( checkRequired("couponId", couponId), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): RedeemedCoupon = apply { + if (validated) { + return@apply + } + + couponId() + endDate() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8916,17 +9251,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TrialInfo - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of() + ) : this(endDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -8943,20 +9280,15 @@ private constructor( @ExcludeMissing fun _endDate(): JsonField = endDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TrialInfo = apply { - if (validated) { - return@apply - } - - endDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9031,7 +9363,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): TrialInfo = - TrialInfo(checkRequired("endDate", endDate), additionalProperties.toImmutable()) + TrialInfo(checkRequired("endDate", endDate), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TrialInfo = apply { + if (validated) { + return@apply + } + + endDate() + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateParams.kt index db138574..de990eb9 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateParams.kt @@ -10,14 +10,12 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -127,658 +125,674 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body + fun toBuilder() = Builder().from(this) - fun _pathParam(index: Int): String = - when (index) { - 0 -> subscriptionId - else -> "" - } + companion object { - override fun _headers(): Headers = additionalHeaders + /** + * Returns a mutable builder for constructing an instance of [SubscriptionUpdateParams]. + * + * The following fields are required: + * ```java + * .subscriptionId() + * ``` + */ + @JvmStatic fun builder() = Builder() + } - override fun _queryParams(): QueryParams = additionalQueryParams + /** A builder for [SubscriptionUpdateParams]. */ + class Builder internal constructor() { - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("default_invoice_memo") - @ExcludeMissing - private val defaultInvoiceMemo: JsonField = JsonMissing.of(), - @JsonProperty("invoicing_threshold") - @ExcludeMissing - private val invoicingThreshold: JsonField = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { + private var subscriptionId: String? = null + private var body: Body.Builder = Body.builder() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + + @JvmSynthetic + internal fun from(subscriptionUpdateParams: SubscriptionUpdateParams) = apply { + subscriptionId = subscriptionUpdateParams.subscriptionId + body = subscriptionUpdateParams.body.toBuilder() + additionalHeaders = subscriptionUpdateParams.additionalHeaders.toBuilder() + additionalQueryParams = subscriptionUpdateParams.additionalQueryParams.toBuilder() + } + + fun subscriptionId(subscriptionId: String) = apply { this.subscriptionId = subscriptionId } /** * Determines whether issued invoices for this subscription will automatically be charged * with the saved payment method on the due date. This property defaults to the plan's * behavior. + */ + fun autoCollection(autoCollection: Boolean?) = apply { body.autoCollection(autoCollection) } + + /** + * Alias for [Builder.autoCollection]. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * This unboxed primitive overload exists for backwards compatibility. */ - fun autoCollection(): Optional = - Optional.ofNullable(autoCollection.getNullable("auto_collection")) + fun autoCollection(autoCollection: Boolean) = autoCollection(autoCollection as Boolean?) + + /** Alias for calling [Builder.autoCollection] with `autoCollection.orElse(null)`. */ + fun autoCollection(autoCollection: Optional) = + autoCollection(autoCollection.getOrNull()) + + /** + * Sets [Builder.autoCollection] to an arbitrary JSON value. + * + * You should usually call [Builder.autoCollection] with a well-typed [Boolean] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun autoCollection(autoCollection: JsonField) = apply { + body.autoCollection(autoCollection) + } /** * Determines the default memo on this subscription's invoices. Note that if this is not * provided, it is determined by the plan configuration. + */ + fun defaultInvoiceMemo(defaultInvoiceMemo: String?) = apply { + body.defaultInvoiceMemo(defaultInvoiceMemo) + } + + /** + * Alias for calling [Builder.defaultInvoiceMemo] with `defaultInvoiceMemo.orElse(null)`. + */ + fun defaultInvoiceMemo(defaultInvoiceMemo: Optional) = + defaultInvoiceMemo(defaultInvoiceMemo.getOrNull()) + + /** + * Sets [Builder.defaultInvoiceMemo] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.defaultInvoiceMemo] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun defaultInvoiceMemo(): Optional = - Optional.ofNullable(defaultInvoiceMemo.getNullable("default_invoice_memo")) + fun defaultInvoiceMemo(defaultInvoiceMemo: JsonField) = apply { + body.defaultInvoiceMemo(defaultInvoiceMemo) + } /** * When this subscription's accrued usage reaches this threshold, an invoice will be issued * for the subscription. If not specified, invoices will only be issued at the end of the * billing period. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). */ - fun invoicingThreshold(): Optional = - Optional.ofNullable(invoicingThreshold.getNullable("invoicing_threshold")) + fun invoicingThreshold(invoicingThreshold: String?) = apply { + body.invoicingThreshold(invoicingThreshold) + } /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * Alias for calling [Builder.invoicingThreshold] with `invoicingThreshold.orElse(null)`. */ - fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) + fun invoicingThreshold(invoicingThreshold: Optional) = + invoicingThreshold(invoicingThreshold.getOrNull()) /** - * Determines the difference between the invoice issue date for subscription invoices as the - * date that they are due. A value of `0` here represents that the invoice is due on issue, - * whereas a value of `30` represents that the customer has a month to pay the invoice. + * Sets [Builder.invoicingThreshold] to an arbitrary JSON value. * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). + * You should usually call [Builder.invoicingThreshold] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. */ - fun netTerms(): Optional = Optional.ofNullable(netTerms.getNullable("net_terms")) + fun invoicingThreshold(invoicingThreshold: JsonField) = apply { + body.invoicingThreshold(invoicingThreshold) + } /** - * Returns the raw JSON value of [autoCollection]. - * - * Unlike [autoCollection], this method doesn't throw if the JSON field has an unexpected - * type. + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. */ - @JsonProperty("auto_collection") - @ExcludeMissing - fun _autoCollection(): JsonField = autoCollection + fun metadata(metadata: Metadata?) = apply { body.metadata(metadata) } + + /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ + fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) /** - * Returns the raw JSON value of [defaultInvoiceMemo]. + * Sets [Builder.metadata] to an arbitrary JSON value. * - * Unlike [defaultInvoiceMemo], this method doesn't throw if the JSON field has an - * unexpected type. + * You should usually call [Builder.metadata] with a well-typed [Metadata] value instead. + * This method is primarily for setting the field to an undocumented or not yet supported + * value. */ - @JsonProperty("default_invoice_memo") - @ExcludeMissing - fun _defaultInvoiceMemo(): JsonField = defaultInvoiceMemo + fun metadata(metadata: JsonField) = apply { body.metadata(metadata) } /** - * Returns the raw JSON value of [invoicingThreshold]. - * - * Unlike [invoicingThreshold], this method doesn't throw if the JSON field has an - * unexpected type. + * Determines the difference between the invoice issue date for subscription invoices as the + * date that they are due. A value of `0` here represents that the invoice is due on issue, + * whereas a value of `30` represents that the customer has a month to pay the invoice. */ - @JsonProperty("invoicing_threshold") - @ExcludeMissing - fun _invoicingThreshold(): JsonField = invoicingThreshold + fun netTerms(netTerms: Long?) = apply { body.netTerms(netTerms) } /** - * Returns the raw JSON value of [metadata]. + * Alias for [Builder.netTerms]. * - * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. + * This unboxed primitive overload exists for backwards compatibility. */ - @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata + fun netTerms(netTerms: Long) = netTerms(netTerms as Long?) + + /** Alias for calling [Builder.netTerms] with `netTerms.orElse(null)`. */ + fun netTerms(netTerms: Optional) = netTerms(netTerms.getOrNull()) /** - * Returns the raw JSON value of [netTerms]. + * Sets [Builder.netTerms] to an arbitrary JSON value. * - * Unlike [netTerms], this method doesn't throw if the JSON field has an unexpected type. + * You should usually call [Builder.netTerms] with a well-typed [Long] value instead. This + * method is primarily for setting the field to an undocumented or not yet supported value. */ - @JsonProperty("net_terms") @ExcludeMissing fun _netTerms(): JsonField = netTerms - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } + fun netTerms(netTerms: JsonField) = apply { body.netTerms(netTerms) } - autoCollection() - defaultInvoiceMemo() - invoicingThreshold() - metadata().ifPresent { it.validate() } - netTerms() - validated = true + fun additionalBodyProperties(additionalBodyProperties: Map) = apply { + body.additionalProperties(additionalBodyProperties) } - fun toBuilder() = Builder().from(this) - - companion object { - - /** Returns a mutable builder for constructing an instance of [Body]. */ - @JvmStatic fun builder() = Builder() + fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { + body.putAdditionalProperty(key, value) } - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var autoCollection: JsonField = JsonMissing.of() - private var defaultInvoiceMemo: JsonField = JsonMissing.of() - private var invoicingThreshold: JsonField = JsonMissing.of() - private var metadata: JsonField = JsonMissing.of() - private var netTerms: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - autoCollection = body.autoCollection - defaultInvoiceMemo = body.defaultInvoiceMemo - invoicingThreshold = body.invoicingThreshold - metadata = body.metadata - netTerms = body.netTerms - additionalProperties = body.additionalProperties.toMutableMap() + fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = + apply { + body.putAllAdditionalProperties(additionalBodyProperties) } - /** - * Determines whether issued invoices for this subscription will automatically be - * charged with the saved payment method on the due date. This property defaults to the - * plan's behavior. - */ - fun autoCollection(autoCollection: Boolean?) = - autoCollection(JsonField.ofNullable(autoCollection)) - - /** - * Alias for [Builder.autoCollection]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun autoCollection(autoCollection: Boolean) = autoCollection(autoCollection as Boolean?) - - /** Alias for calling [Builder.autoCollection] with `autoCollection.orElse(null)`. */ - fun autoCollection(autoCollection: Optional) = - autoCollection(autoCollection.getOrNull()) + fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } - /** - * Sets [Builder.autoCollection] to an arbitrary JSON value. - * - * You should usually call [Builder.autoCollection] with a well-typed [Boolean] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun autoCollection(autoCollection: JsonField) = apply { - this.autoCollection = autoCollection - } + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + body.removeAllAdditionalProperties(keys) + } - /** - * Determines the default memo on this subscription's invoices. Note that if this is not - * provided, it is determined by the plan configuration. - */ - fun defaultInvoiceMemo(defaultInvoiceMemo: String?) = - defaultInvoiceMemo(JsonField.ofNullable(defaultInvoiceMemo)) + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - /** - * Alias for calling [Builder.defaultInvoiceMemo] with - * `defaultInvoiceMemo.orElse(null)`. - */ - fun defaultInvoiceMemo(defaultInvoiceMemo: Optional) = - defaultInvoiceMemo(defaultInvoiceMemo.getOrNull()) + fun additionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } - /** - * Sets [Builder.defaultInvoiceMemo] to an arbitrary JSON value. - * - * You should usually call [Builder.defaultInvoiceMemo] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun defaultInvoiceMemo(defaultInvoiceMemo: JsonField) = apply { - this.defaultInvoiceMemo = defaultInvoiceMemo - } + fun putAdditionalHeader(name: String, value: String) = apply { + additionalHeaders.put(name, value) + } - /** - * When this subscription's accrued usage reaches this threshold, an invoice will be - * issued for the subscription. If not specified, invoices will only be issued at the - * end of the billing period. - */ - fun invoicingThreshold(invoicingThreshold: String?) = - invoicingThreshold(JsonField.ofNullable(invoicingThreshold)) + fun putAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.put(name, values) + } - /** - * Alias for calling [Builder.invoicingThreshold] with - * `invoicingThreshold.orElse(null)`. - */ - fun invoicingThreshold(invoicingThreshold: Optional) = - invoicingThreshold(invoicingThreshold.getOrNull()) + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - /** - * Sets [Builder.invoicingThreshold] to an arbitrary JSON value. - * - * You should usually call [Builder.invoicingThreshold] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun invoicingThreshold(invoicingThreshold: JsonField) = apply { - this.invoicingThreshold = invoicingThreshold - } + fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.putAll(additionalHeaders) + } - /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by - * setting `metadata` to `null`. - */ - fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) + fun replaceAdditionalHeaders(name: String, value: String) = apply { + additionalHeaders.replace(name, value) + } - /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ - fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) + fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { + additionalHeaders.replace(name, values) + } - /** - * Sets [Builder.metadata] to an arbitrary JSON value. - * - * You should usually call [Builder.metadata] with a well-typed [Metadata] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun metadata(metadata: JsonField) = apply { this.metadata = metadata } + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** - * Determines the difference between the invoice issue date for subscription invoices as - * the date that they are due. A value of `0` here represents that the invoice is due on - * issue, whereas a value of `30` represents that the customer has a month to pay the - * invoice. - */ - fun netTerms(netTerms: Long?) = netTerms(JsonField.ofNullable(netTerms)) + fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) + } - /** - * Alias for [Builder.netTerms]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun netTerms(netTerms: Long) = netTerms(netTerms as Long?) + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } - /** Alias for calling [Builder.netTerms] with `netTerms.orElse(null)`. */ - fun netTerms(netTerms: Optional) = netTerms(netTerms.getOrNull()) + fun removeAllAdditionalHeaders(names: Set) = apply { + additionalHeaders.removeAll(names) + } - /** - * Sets [Builder.netTerms] to an arbitrary JSON value. - * - * You should usually call [Builder.netTerms] with a well-typed [Long] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun netTerms(netTerms: JsonField) = apply { this.netTerms = netTerms } + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } + fun additionalQueryParams(additionalQueryParams: Map>) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) + } - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } + fun putAdditionalQueryParam(key: String, value: String) = apply { + additionalQueryParams.put(key, value) + } - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } + fun putAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.put(key, values) + } - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) + } - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) + fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.putAll(additionalQueryParams) } - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - */ - fun build(): Body = - Body( - autoCollection, - defaultInvoiceMemo, - invoicingThreshold, - metadata, - netTerms, - additionalProperties.toImmutable(), - ) + fun replaceAdditionalQueryParams(key: String, value: String) = apply { + additionalQueryParams.replace(key, value) } - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && autoCollection == other.autoCollection && defaultInvoiceMemo == other.defaultInvoiceMemo && invoicingThreshold == other.invoicingThreshold && metadata == other.metadata && netTerms == other.netTerms && additionalProperties == other.additionalProperties /* spotless:on */ + fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { + additionalQueryParams.replace(key, values) } - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(autoCollection, defaultInvoiceMemo, invoicingThreshold, metadata, netTerms, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - override fun toString() = - "Body{autoCollection=$autoCollection, defaultInvoiceMemo=$defaultInvoiceMemo, invoicingThreshold=$invoicingThreshold, metadata=$metadata, netTerms=$netTerms, additionalProperties=$additionalProperties}" - } + fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = + apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) + } - fun toBuilder() = Builder().from(this) + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } - companion object { + fun removeAllAdditionalQueryParams(keys: Set) = apply { + additionalQueryParams.removeAll(keys) + } /** - * Returns a mutable builder for constructing an instance of [SubscriptionUpdateParams]. + * Returns an immutable instance of [SubscriptionUpdateParams]. + * + * Further updates to this [Builder] will not mutate the returned instance. * * The following fields are required: * ```java * .subscriptionId() * ``` + * + * @throws IllegalStateException if any required field is unset. */ - @JvmStatic fun builder() = Builder() + fun build(): SubscriptionUpdateParams = + SubscriptionUpdateParams( + checkRequired("subscriptionId", subscriptionId), + body.build(), + additionalHeaders.build(), + additionalQueryParams.build(), + ) } - /** A builder for [SubscriptionUpdateParams]. */ - @NoAutoDetect - class Builder internal constructor() { - - private var subscriptionId: String? = null - private var body: Body.Builder = Body.builder() - private var additionalHeaders: Headers.Builder = Headers.builder() - private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() + @JvmSynthetic internal fun _body(): Body = body - @JvmSynthetic - internal fun from(subscriptionUpdateParams: SubscriptionUpdateParams) = apply { - subscriptionId = subscriptionUpdateParams.subscriptionId - body = subscriptionUpdateParams.body.toBuilder() - additionalHeaders = subscriptionUpdateParams.additionalHeaders.toBuilder() - additionalQueryParams = subscriptionUpdateParams.additionalQueryParams.toBuilder() + fun _pathParam(index: Int): String = + when (index) { + 0 -> subscriptionId + else -> "" } - fun subscriptionId(subscriptionId: String) = apply { this.subscriptionId = subscriptionId } + override fun _headers(): Headers = additionalHeaders - /** - * Determines whether issued invoices for this subscription will automatically be charged - * with the saved payment method on the due date. This property defaults to the plan's - * behavior. - */ - fun autoCollection(autoCollection: Boolean?) = apply { body.autoCollection(autoCollection) } + override fun _queryParams(): QueryParams = additionalQueryParams - /** - * Alias for [Builder.autoCollection]. - * - * This unboxed primitive overload exists for backwards compatibility. - */ - fun autoCollection(autoCollection: Boolean) = autoCollection(autoCollection as Boolean?) + class Body + private constructor( + private val autoCollection: JsonField, + private val defaultInvoiceMemo: JsonField, + private val invoicingThreshold: JsonField, + private val metadata: JsonField, + private val netTerms: JsonField, + private val additionalProperties: MutableMap, + ) { - /** Alias for calling [Builder.autoCollection] with `autoCollection.orElse(null)`. */ - fun autoCollection(autoCollection: Optional) = - autoCollection(autoCollection.getOrNull()) + @JsonCreator + private constructor( + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("default_invoice_memo") + @ExcludeMissing + defaultInvoiceMemo: JsonField = JsonMissing.of(), + @JsonProperty("invoicing_threshold") + @ExcludeMissing + invoicingThreshold: JsonField = JsonMissing.of(), + @JsonProperty("metadata") + @ExcludeMissing + metadata: JsonField = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + ) : this( + autoCollection, + defaultInvoiceMemo, + invoicingThreshold, + metadata, + netTerms, + mutableMapOf(), + ) /** - * Sets [Builder.autoCollection] to an arbitrary JSON value. + * Determines whether issued invoices for this subscription will automatically be charged + * with the saved payment method on the due date. This property defaults to the plan's + * behavior. * - * You should usually call [Builder.autoCollection] with a well-typed [Boolean] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun autoCollection(autoCollection: JsonField) = apply { - body.autoCollection(autoCollection) - } + fun autoCollection(): Optional = + Optional.ofNullable(autoCollection.getNullable("auto_collection")) /** * Determines the default memo on this subscription's invoices. Note that if this is not * provided, it is determined by the plan configuration. - */ - fun defaultInvoiceMemo(defaultInvoiceMemo: String?) = apply { - body.defaultInvoiceMemo(defaultInvoiceMemo) - } - - /** - * Alias for calling [Builder.defaultInvoiceMemo] with `defaultInvoiceMemo.orElse(null)`. - */ - fun defaultInvoiceMemo(defaultInvoiceMemo: Optional) = - defaultInvoiceMemo(defaultInvoiceMemo.getOrNull()) - - /** - * Sets [Builder.defaultInvoiceMemo] to an arbitrary JSON value. * - * You should usually call [Builder.defaultInvoiceMemo] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun defaultInvoiceMemo(defaultInvoiceMemo: JsonField) = apply { - body.defaultInvoiceMemo(defaultInvoiceMemo) - } + fun defaultInvoiceMemo(): Optional = + Optional.ofNullable(defaultInvoiceMemo.getNullable("default_invoice_memo")) /** * When this subscription's accrued usage reaches this threshold, an invoice will be issued * for the subscription. If not specified, invoices will only be issued at the end of the * billing period. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun invoicingThreshold(invoicingThreshold: String?) = apply { - body.invoicingThreshold(invoicingThreshold) - } + fun invoicingThreshold(): Optional = + Optional.ofNullable(invoicingThreshold.getNullable("invoicing_threshold")) /** - * Alias for calling [Builder.invoicingThreshold] with `invoicingThreshold.orElse(null)`. + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by setting + * `metadata` to `null`. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun invoicingThreshold(invoicingThreshold: Optional) = - invoicingThreshold(invoicingThreshold.getOrNull()) + fun metadata(): Optional = Optional.ofNullable(metadata.getNullable("metadata")) /** - * Sets [Builder.invoicingThreshold] to an arbitrary JSON value. + * Determines the difference between the invoice issue date for subscription invoices as the + * date that they are due. A value of `0` here represents that the invoice is due on issue, + * whereas a value of `30` represents that the customer has a month to pay the invoice. * - * You should usually call [Builder.invoicingThreshold] with a well-typed [String] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). */ - fun invoicingThreshold(invoicingThreshold: JsonField) = apply { - body.invoicingThreshold(invoicingThreshold) - } + fun netTerms(): Optional = Optional.ofNullable(netTerms.getNullable("net_terms")) /** - * User-specified key/value pairs for the resource. Individual keys can be removed by - * setting the value to `null`, and the entire metadata mapping can be cleared by setting - * `metadata` to `null`. + * Returns the raw JSON value of [autoCollection]. + * + * Unlike [autoCollection], this method doesn't throw if the JSON field has an unexpected + * type. */ - fun metadata(metadata: Metadata?) = apply { body.metadata(metadata) } - - /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ - fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) + @JsonProperty("auto_collection") + @ExcludeMissing + fun _autoCollection(): JsonField = autoCollection /** - * Sets [Builder.metadata] to an arbitrary JSON value. + * Returns the raw JSON value of [defaultInvoiceMemo]. * - * You should usually call [Builder.metadata] with a well-typed [Metadata] value instead. - * This method is primarily for setting the field to an undocumented or not yet supported - * value. + * Unlike [defaultInvoiceMemo], this method doesn't throw if the JSON field has an + * unexpected type. */ - fun metadata(metadata: JsonField) = apply { body.metadata(metadata) } + @JsonProperty("default_invoice_memo") + @ExcludeMissing + fun _defaultInvoiceMemo(): JsonField = defaultInvoiceMemo /** - * Determines the difference between the invoice issue date for subscription invoices as the - * date that they are due. A value of `0` here represents that the invoice is due on issue, - * whereas a value of `30` represents that the customer has a month to pay the invoice. + * Returns the raw JSON value of [invoicingThreshold]. + * + * Unlike [invoicingThreshold], this method doesn't throw if the JSON field has an + * unexpected type. */ - fun netTerms(netTerms: Long?) = apply { body.netTerms(netTerms) } + @JsonProperty("invoicing_threshold") + @ExcludeMissing + fun _invoicingThreshold(): JsonField = invoicingThreshold /** - * Alias for [Builder.netTerms]. + * Returns the raw JSON value of [metadata]. * - * This unboxed primitive overload exists for backwards compatibility. + * Unlike [metadata], this method doesn't throw if the JSON field has an unexpected type. */ - fun netTerms(netTerms: Long) = netTerms(netTerms as Long?) - - /** Alias for calling [Builder.netTerms] with `netTerms.orElse(null)`. */ - fun netTerms(netTerms: Optional) = netTerms(netTerms.getOrNull()) + @JsonProperty("metadata") @ExcludeMissing fun _metadata(): JsonField = metadata /** - * Sets [Builder.netTerms] to an arbitrary JSON value. + * Returns the raw JSON value of [netTerms]. * - * You should usually call [Builder.netTerms] with a well-typed [Long] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. + * Unlike [netTerms], this method doesn't throw if the JSON field has an unexpected type. */ - fun netTerms(netTerms: JsonField) = apply { body.netTerms(netTerms) } + @JsonProperty("net_terms") @ExcludeMissing fun _netTerms(): JsonField = netTerms - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { - body.additionalProperties(additionalBodyProperties) + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) } - fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - body.putAdditionalProperty(key, value) + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** Returns a mutable builder for constructing an instance of [Body]. */ + @JvmStatic fun builder() = Builder() } - fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = - apply { - body.putAllAdditionalProperties(additionalBodyProperties) + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var autoCollection: JsonField = JsonMissing.of() + private var defaultInvoiceMemo: JsonField = JsonMissing.of() + private var invoicingThreshold: JsonField = JsonMissing.of() + private var metadata: JsonField = JsonMissing.of() + private var netTerms: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + autoCollection = body.autoCollection + defaultInvoiceMemo = body.defaultInvoiceMemo + invoicingThreshold = body.invoicingThreshold + metadata = body.metadata + netTerms = body.netTerms + additionalProperties = body.additionalProperties.toMutableMap() + } + + /** + * Determines whether issued invoices for this subscription will automatically be + * charged with the saved payment method on the due date. This property defaults to the + * plan's behavior. + */ + fun autoCollection(autoCollection: Boolean?) = + autoCollection(JsonField.ofNullable(autoCollection)) + + /** + * Alias for [Builder.autoCollection]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun autoCollection(autoCollection: Boolean) = autoCollection(autoCollection as Boolean?) + + /** Alias for calling [Builder.autoCollection] with `autoCollection.orElse(null)`. */ + fun autoCollection(autoCollection: Optional) = + autoCollection(autoCollection.getOrNull()) + + /** + * Sets [Builder.autoCollection] to an arbitrary JSON value. + * + * You should usually call [Builder.autoCollection] with a well-typed [Boolean] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun autoCollection(autoCollection: JsonField) = apply { + this.autoCollection = autoCollection } - fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) } + /** + * Determines the default memo on this subscription's invoices. Note that if this is not + * provided, it is determined by the plan configuration. + */ + fun defaultInvoiceMemo(defaultInvoiceMemo: String?) = + defaultInvoiceMemo(JsonField.ofNullable(defaultInvoiceMemo)) - fun removeAllAdditionalBodyProperties(keys: Set) = apply { - body.removeAllAdditionalProperties(keys) - } + /** + * Alias for calling [Builder.defaultInvoiceMemo] with + * `defaultInvoiceMemo.orElse(null)`. + */ + fun defaultInvoiceMemo(defaultInvoiceMemo: Optional) = + defaultInvoiceMemo(defaultInvoiceMemo.getOrNull()) - fun additionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** + * Sets [Builder.defaultInvoiceMemo] to an arbitrary JSON value. + * + * You should usually call [Builder.defaultInvoiceMemo] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun defaultInvoiceMemo(defaultInvoiceMemo: JsonField) = apply { + this.defaultInvoiceMemo = defaultInvoiceMemo + } - fun additionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.clear() - putAllAdditionalHeaders(additionalHeaders) - } + /** + * When this subscription's accrued usage reaches this threshold, an invoice will be + * issued for the subscription. If not specified, invoices will only be issued at the + * end of the billing period. + */ + fun invoicingThreshold(invoicingThreshold: String?) = + invoicingThreshold(JsonField.ofNullable(invoicingThreshold)) - fun putAdditionalHeader(name: String, value: String) = apply { - additionalHeaders.put(name, value) - } + /** + * Alias for calling [Builder.invoicingThreshold] with + * `invoicingThreshold.orElse(null)`. + */ + fun invoicingThreshold(invoicingThreshold: Optional) = + invoicingThreshold(invoicingThreshold.getOrNull()) - fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.put(name, values) - } + /** + * Sets [Builder.invoicingThreshold] to an arbitrary JSON value. + * + * You should usually call [Builder.invoicingThreshold] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun invoicingThreshold(invoicingThreshold: JsonField) = apply { + this.invoicingThreshold = invoicingThreshold + } - fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** + * User-specified key/value pairs for the resource. Individual keys can be removed by + * setting the value to `null`, and the entire metadata mapping can be cleared by + * setting `metadata` to `null`. + */ + fun metadata(metadata: Metadata?) = metadata(JsonField.ofNullable(metadata)) - fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.putAll(additionalHeaders) - } + /** Alias for calling [Builder.metadata] with `metadata.orElse(null)`. */ + fun metadata(metadata: Optional) = metadata(metadata.getOrNull()) - fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replace(name, value) - } + /** + * Sets [Builder.metadata] to an arbitrary JSON value. + * + * You should usually call [Builder.metadata] with a well-typed [Metadata] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun metadata(metadata: JsonField) = apply { this.metadata = metadata } - fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replace(name, values) - } + /** + * Determines the difference between the invoice issue date for subscription invoices as + * the date that they are due. A value of `0` here represents that the invoice is due on + * issue, whereas a value of `30` represents that the customer has a month to pay the + * invoice. + */ + fun netTerms(netTerms: Long?) = netTerms(JsonField.ofNullable(netTerms)) - fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** + * Alias for [Builder.netTerms]. + * + * This unboxed primitive overload exists for backwards compatibility. + */ + fun netTerms(netTerms: Long) = netTerms(netTerms as Long?) - fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - this.additionalHeaders.replaceAll(additionalHeaders) - } + /** Alias for calling [Builder.netTerms] with `netTerms.orElse(null)`. */ + fun netTerms(netTerms: Optional) = netTerms(netTerms.getOrNull()) - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } + /** + * Sets [Builder.netTerms] to an arbitrary JSON value. + * + * You should usually call [Builder.netTerms] with a well-typed [Long] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun netTerms(netTerms: JsonField) = apply { this.netTerms = netTerms } - fun removeAllAdditionalHeaders(names: Set) = apply { - additionalHeaders.removeAll(names) - } + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } - fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } - fun additionalQueryParams(additionalQueryParams: Map>) = apply { - this.additionalQueryParams.clear() - putAllAdditionalQueryParams(additionalQueryParams) - } + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } - fun putAdditionalQueryParam(key: String, value: String) = apply { - additionalQueryParams.put(key, value) - } + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.put(key, values) - } + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } - fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.putAll(additionalQueryParams) + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + */ + fun build(): Body = + Body( + autoCollection, + defaultInvoiceMemo, + invoicingThreshold, + metadata, + netTerms, + additionalProperties.toMutableMap(), + ) } - fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.putAll(additionalQueryParams) + private var validated: Boolean = false + + fun validate(): Body = apply { + if (validated) { + return@apply } - fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replace(key, value) + autoCollection() + defaultInvoiceMemo() + invoicingThreshold() + metadata().ifPresent { it.validate() } + netTerms() + validated = true } - fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replace(key, values) - } + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } - fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) + return /* spotless:off */ other is Body && autoCollection == other.autoCollection && defaultInvoiceMemo == other.defaultInvoiceMemo && invoicingThreshold == other.invoicingThreshold && metadata == other.metadata && netTerms == other.netTerms && additionalProperties == other.additionalProperties /* spotless:on */ } - fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = - apply { - this.additionalQueryParams.replaceAll(additionalQueryParams) - } - - fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(autoCollection, defaultInvoiceMemo, invoicingThreshold, metadata, netTerms, additionalProperties) } + /* spotless:on */ - fun removeAllAdditionalQueryParams(keys: Set) = apply { - additionalQueryParams.removeAll(keys) - } + override fun hashCode(): Int = hashCode - /** - * Returns an immutable instance of [SubscriptionUpdateParams]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .subscriptionId() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): SubscriptionUpdateParams = - SubscriptionUpdateParams( - checkRequired("subscriptionId", subscriptionId), - body.build(), - additionalHeaders.build(), - additionalQueryParams.build(), - ) + override fun toString() = + "Body{autoCollection=$autoCollection, defaultInvoiceMemo=$defaultInvoiceMemo, invoicingThreshold=$invoicingThreshold, metadata=$metadata, netTerms=$netTerms, additionalProperties=$additionalProperties}" } /** @@ -786,27 +800,20 @@ private constructor( * the value to `null`, and the entire metadata mapping can be cleared by setting `metadata` to * `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -850,7 +857,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateTrialParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateTrialParams.kt index 43dec1ee..56eba711 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateTrialParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateTrialParams.kt @@ -20,16 +20,14 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional @@ -99,214 +97,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JvmSynthetic internal fun _body(): Body = body - - fun _pathParam(index: Int): String = - when (index) { - 0 -> subscriptionId - else -> "" - } - - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - - @NoAutoDetect - class Body - @JsonCreator - private constructor( - @JsonProperty("trial_end_date") - @ExcludeMissing - private val trialEndDate: JsonField = JsonMissing.of(), - @JsonProperty("shift") - @ExcludeMissing - private val shift: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), - ) { - - /** - * The new date that the trial should end, or the literal string `immediate` to end the - * trial immediately. - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type or is - * unexpectedly missing or null (e.g. if the server responded with an unexpected value). - */ - fun trialEndDate(): TrialEndDate = trialEndDate.getRequired("trial_end_date") - - /** - * If true, shifts subsequent price and adjustment intervals (preserving their durations, - * but adjusting their absolute dates). - * - * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the - * server responded with an unexpected value). - */ - fun shift(): Optional = Optional.ofNullable(shift.getNullable("shift")) - - /** - * Returns the raw JSON value of [trialEndDate]. - * - * Unlike [trialEndDate], this method doesn't throw if the JSON field has an unexpected - * type. - */ - @JsonProperty("trial_end_date") - @ExcludeMissing - fun _trialEndDate(): JsonField = trialEndDate - - /** - * Returns the raw JSON value of [shift]. - * - * Unlike [shift], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("shift") @ExcludeMissing fun _shift(): JsonField = shift - - @JsonAnyGetter - @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Body = apply { - if (validated) { - return@apply - } - - trialEndDate().validate() - shift() - validated = true - } - - fun toBuilder() = Builder().from(this) - - companion object { - - /** - * Returns a mutable builder for constructing an instance of [Body]. - * - * The following fields are required: - * ```java - * .trialEndDate() - * ``` - */ - @JvmStatic fun builder() = Builder() - } - - /** A builder for [Body]. */ - class Builder internal constructor() { - - private var trialEndDate: JsonField? = null - private var shift: JsonField = JsonMissing.of() - private var additionalProperties: MutableMap = mutableMapOf() - - @JvmSynthetic - internal fun from(body: Body) = apply { - trialEndDate = body.trialEndDate - shift = body.shift - additionalProperties = body.additionalProperties.toMutableMap() - } - - /** - * The new date that the trial should end, or the literal string `immediate` to end the - * trial immediately. - */ - fun trialEndDate(trialEndDate: TrialEndDate) = trialEndDate(JsonField.of(trialEndDate)) - - /** - * Sets [Builder.trialEndDate] to an arbitrary JSON value. - * - * You should usually call [Builder.trialEndDate] with a well-typed [TrialEndDate] value - * instead. This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun trialEndDate(trialEndDate: JsonField) = apply { - this.trialEndDate = trialEndDate - } - - /** - * Alias for calling [trialEndDate] with - * `TrialEndDate.ofOffsetDateTime(offsetDateTime)`. - */ - fun trialEndDate(offsetDateTime: OffsetDateTime) = - trialEndDate(TrialEndDate.ofOffsetDateTime(offsetDateTime)) - - /** - * Alias for calling [trialEndDate] with `TrialEndDate.ofUnionMember1(unionMember1)`. - */ - fun trialEndDate(unionMember1: TrialEndDate.UnionMember1) = - trialEndDate(TrialEndDate.ofUnionMember1(unionMember1)) - - /** - * If true, shifts subsequent price and adjustment intervals (preserving their - * durations, but adjusting their absolute dates). - */ - fun shift(shift: Boolean) = shift(JsonField.of(shift)) - - /** - * Sets [Builder.shift] to an arbitrary JSON value. - * - * You should usually call [Builder.shift] with a well-typed [Boolean] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun shift(shift: JsonField) = apply { this.shift = shift } - - fun additionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.clear() - putAllAdditionalProperties(additionalProperties) - } - - fun putAdditionalProperty(key: String, value: JsonValue) = apply { - additionalProperties.put(key, value) - } - - fun putAllAdditionalProperties(additionalProperties: Map) = apply { - this.additionalProperties.putAll(additionalProperties) - } - - fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } - - fun removeAllAdditionalProperties(keys: Set) = apply { - keys.forEach(::removeAdditionalProperty) - } - - /** - * Returns an immutable instance of [Body]. - * - * Further updates to this [Builder] will not mutate the returned instance. - * - * The following fields are required: - * ```java - * .trialEndDate() - * ``` - * - * @throws IllegalStateException if any required field is unset. - */ - fun build(): Body = - Body( - checkRequired("trialEndDate", trialEndDate), - shift, - additionalProperties.toImmutable(), - ) - } - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return /* spotless:off */ other is Body && trialEndDate == other.trialEndDate && shift == other.shift && additionalProperties == other.additionalProperties /* spotless:on */ - } - - /* spotless:off */ - private val hashCode: Int by lazy { Objects.hash(trialEndDate, shift, additionalProperties) } - /* spotless:on */ - - override fun hashCode(): Int = hashCode - - override fun toString() = - "Body{trialEndDate=$trialEndDate, shift=$shift, additionalProperties=$additionalProperties}" - } - fun toBuilder() = Builder().from(this) companion object { @@ -325,7 +115,6 @@ private constructor( } /** A builder for [SubscriptionUpdateTrialParams]. */ - @NoAutoDetect class Builder internal constructor() { private var subscriptionId: String? = null @@ -525,6 +314,221 @@ private constructor( ) } + @JvmSynthetic internal fun _body(): Body = body + + fun _pathParam(index: Int): String = + when (index) { + 0 -> subscriptionId + else -> "" + } + + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + + class Body + private constructor( + private val trialEndDate: JsonField, + private val shift: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("trial_end_date") + @ExcludeMissing + trialEndDate: JsonField = JsonMissing.of(), + @JsonProperty("shift") @ExcludeMissing shift: JsonField = JsonMissing.of(), + ) : this(trialEndDate, shift, mutableMapOf()) + + /** + * The new date that the trial should end, or the literal string `immediate` to end the + * trial immediately. + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun trialEndDate(): TrialEndDate = trialEndDate.getRequired("trial_end_date") + + /** + * If true, shifts subsequent price and adjustment intervals (preserving their durations, + * but adjusting their absolute dates). + * + * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the + * server responded with an unexpected value). + */ + fun shift(): Optional = Optional.ofNullable(shift.getNullable("shift")) + + /** + * Returns the raw JSON value of [trialEndDate]. + * + * Unlike [trialEndDate], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("trial_end_date") + @ExcludeMissing + fun _trialEndDate(): JsonField = trialEndDate + + /** + * Returns the raw JSON value of [shift]. + * + * Unlike [shift], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("shift") @ExcludeMissing fun _shift(): JsonField = shift + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of [Body]. + * + * The following fields are required: + * ```java + * .trialEndDate() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [Body]. */ + class Builder internal constructor() { + + private var trialEndDate: JsonField? = null + private var shift: JsonField = JsonMissing.of() + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(body: Body) = apply { + trialEndDate = body.trialEndDate + shift = body.shift + additionalProperties = body.additionalProperties.toMutableMap() + } + + /** + * The new date that the trial should end, or the literal string `immediate` to end the + * trial immediately. + */ + fun trialEndDate(trialEndDate: TrialEndDate) = trialEndDate(JsonField.of(trialEndDate)) + + /** + * Sets [Builder.trialEndDate] to an arbitrary JSON value. + * + * You should usually call [Builder.trialEndDate] with a well-typed [TrialEndDate] value + * instead. This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun trialEndDate(trialEndDate: JsonField) = apply { + this.trialEndDate = trialEndDate + } + + /** + * Alias for calling [trialEndDate] with + * `TrialEndDate.ofOffsetDateTime(offsetDateTime)`. + */ + fun trialEndDate(offsetDateTime: OffsetDateTime) = + trialEndDate(TrialEndDate.ofOffsetDateTime(offsetDateTime)) + + /** + * Alias for calling [trialEndDate] with `TrialEndDate.ofUnionMember1(unionMember1)`. + */ + fun trialEndDate(unionMember1: TrialEndDate.UnionMember1) = + trialEndDate(TrialEndDate.ofUnionMember1(unionMember1)) + + /** + * If true, shifts subsequent price and adjustment intervals (preserving their + * durations, but adjusting their absolute dates). + */ + fun shift(shift: Boolean) = shift(JsonField.of(shift)) + + /** + * Sets [Builder.shift] to an arbitrary JSON value. + * + * You should usually call [Builder.shift] with a well-typed [Boolean] value instead. + * This method is primarily for setting the field to an undocumented or not yet + * supported value. + */ + fun shift(shift: JsonField) = apply { this.shift = shift } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [Body]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .trialEndDate() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): Body = + Body( + checkRequired("trialEndDate", trialEndDate), + shift, + additionalProperties.toMutableMap(), + ) + } + + private var validated: Boolean = false + + fun validate(): Body = apply { + if (validated) { + return@apply + } + + trialEndDate().validate() + shift() + validated = true + } + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return /* spotless:off */ other is Body && trialEndDate == other.trialEndDate && shift == other.shift && additionalProperties == other.additionalProperties /* spotless:on */ + } + + /* spotless:off */ + private val hashCode: Int by lazy { Objects.hash(trialEndDate, shift, additionalProperties) } + /* spotless:on */ + + override fun hashCode(): Int = hashCode + + override fun toString() = + "Body{trialEndDate=$trialEndDate, shift=$shift, additionalProperties=$additionalProperties}" + } + /** * The new date that the trial should end, or the literal string `immediate` to end the trial * immediately. diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateTrialResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateTrialResponse.kt index 210ef92d..48bf844d 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateTrialResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateTrialResponse.kt @@ -20,98 +20,142 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class SubscriptionUpdateTrialResponse -@JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("active_plan_phase_order") - @ExcludeMissing - private val activePlanPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_intervals") - @ExcludeMissing - private val adjustmentIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("auto_collection") - @ExcludeMissing - private val autoCollection: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_anchor_configuration") - @ExcludeMissing - private val billingCycleAnchorConfiguration: JsonField = - JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("created_at") - @ExcludeMissing - private val createdAt: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("customer") - @ExcludeMissing - private val customer: JsonField = JsonMissing.of(), - @JsonProperty("default_invoice_memo") - @ExcludeMissing - private val defaultInvoiceMemo: JsonField = JsonMissing.of(), - @JsonProperty("discount_intervals") - @ExcludeMissing - private val discountIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_schedule") - @ExcludeMissing - private val fixedFeeQuantitySchedule: JsonField> = - JsonMissing.of(), - @JsonProperty("invoicing_threshold") - @ExcludeMissing - private val invoicingThreshold: JsonField = JsonMissing.of(), - @JsonProperty("maximum_intervals") - @ExcludeMissing - private val maximumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("metadata") - @ExcludeMissing - private val metadata: JsonField = JsonMissing.of(), - @JsonProperty("minimum_intervals") - @ExcludeMissing - private val minimumIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("net_terms") - @ExcludeMissing - private val netTerms: JsonField = JsonMissing.of(), - @JsonProperty("plan") @ExcludeMissing private val plan: JsonField = JsonMissing.of(), - @JsonProperty("price_intervals") - @ExcludeMissing - private val priceIntervals: JsonField> = JsonMissing.of(), - @JsonProperty("redeemed_coupon") - @ExcludeMissing - private val redeemedCoupon: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("status") - @ExcludeMissing - private val status: JsonField = JsonMissing.of(), - @JsonProperty("trial_info") - @ExcludeMissing - private val trialInfo: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val activePlanPhaseOrder: JsonField, + private val adjustmentIntervals: JsonField>, + private val autoCollection: JsonField, + private val billingCycleAnchorConfiguration: JsonField, + private val billingCycleDay: JsonField, + private val createdAt: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val customer: JsonField, + private val defaultInvoiceMemo: JsonField, + private val discountIntervals: JsonField>, + private val endDate: JsonField, + private val fixedFeeQuantitySchedule: JsonField>, + private val invoicingThreshold: JsonField, + private val maximumIntervals: JsonField>, + private val metadata: JsonField, + private val minimumIntervals: JsonField>, + private val netTerms: JsonField, + private val plan: JsonField, + private val priceIntervals: JsonField>, + private val redeemedCoupon: JsonField, + private val startDate: JsonField, + private val status: JsonField, + private val trialInfo: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("active_plan_phase_order") + @ExcludeMissing + activePlanPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_intervals") + @ExcludeMissing + adjustmentIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("auto_collection") + @ExcludeMissing + autoCollection: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_anchor_configuration") + @ExcludeMissing + billingCycleAnchorConfiguration: JsonField = + JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("created_at") + @ExcludeMissing + createdAt: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("customer") @ExcludeMissing customer: JsonField = JsonMissing.of(), + @JsonProperty("default_invoice_memo") + @ExcludeMissing + defaultInvoiceMemo: JsonField = JsonMissing.of(), + @JsonProperty("discount_intervals") + @ExcludeMissing + discountIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_schedule") + @ExcludeMissing + fixedFeeQuantitySchedule: JsonField> = JsonMissing.of(), + @JsonProperty("invoicing_threshold") + @ExcludeMissing + invoicingThreshold: JsonField = JsonMissing.of(), + @JsonProperty("maximum_intervals") + @ExcludeMissing + maximumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("metadata") @ExcludeMissing metadata: JsonField = JsonMissing.of(), + @JsonProperty("minimum_intervals") + @ExcludeMissing + minimumIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("net_terms") @ExcludeMissing netTerms: JsonField = JsonMissing.of(), + @JsonProperty("plan") @ExcludeMissing plan: JsonField = JsonMissing.of(), + @JsonProperty("price_intervals") + @ExcludeMissing + priceIntervals: JsonField> = JsonMissing.of(), + @JsonProperty("redeemed_coupon") + @ExcludeMissing + redeemedCoupon: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), + @JsonProperty("trial_info") + @ExcludeMissing + trialInfo: JsonField = JsonMissing.of(), + ) : this( + id, + activePlanPhaseOrder, + adjustmentIntervals, + autoCollection, + billingCycleAnchorConfiguration, + billingCycleDay, + createdAt, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + customer, + defaultInvoiceMemo, + discountIntervals, + endDate, + fixedFeeQuantitySchedule, + invoicingThreshold, + maximumIntervals, + metadata, + minimumIntervals, + netTerms, + plan, + priceIntervals, + redeemedCoupon, + startDate, + status, + trialInfo, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -566,44 +610,15 @@ private constructor( */ @JsonProperty("trial_info") @ExcludeMissing fun _trialInfo(): JsonField = trialInfo + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): SubscriptionUpdateTrialResponse = apply { - if (validated) { - return@apply - } - - id() - activePlanPhaseOrder() - adjustmentIntervals().forEach { it.validate() } - autoCollection() - billingCycleAnchorConfiguration().validate() - billingCycleDay() - createdAt() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - customer().validate() - defaultInvoiceMemo() - discountIntervals().forEach { it.validate() } - endDate() - fixedFeeQuantitySchedule().forEach { it.validate() } - invoicingThreshold() - maximumIntervals().forEach { it.validate() } - metadata().validate() - minimumIntervals().forEach { it.validate() } - netTerms() - plan().validate() - priceIntervals().forEach { it.validate() } - redeemedCoupon().ifPresent { it.validate() } - startDate() - status() - trialInfo().validate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1338,31 +1353,72 @@ private constructor( checkRequired("startDate", startDate), checkRequired("status", status), checkRequired("trialInfo", trialInfo), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): SubscriptionUpdateTrialResponse = apply { + if (validated) { + return@apply + } + + id() + activePlanPhaseOrder() + adjustmentIntervals().forEach { it.validate() } + autoCollection() + billingCycleAnchorConfiguration().validate() + billingCycleDay() + createdAt() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + customer().validate() + defaultInvoiceMemo() + discountIntervals().forEach { it.validate() } + endDate() + fixedFeeQuantitySchedule().forEach { it.validate() } + invoicingThreshold() + maximumIntervals().forEach { it.validate() } + metadata().validate() + minimumIntervals().forEach { it.validate() } + netTerms() + plan().validate() + priceIntervals().forEach { it.validate() } + redeemedCoupon().ifPresent { it.validate() } + startDate() + status() + trialInfo().validate() + validated = true + } + class AdjustmentInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment") - @ExcludeMissing - private val adjustment: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustment: JsonField, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment") + @ExcludeMissing + adjustment: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(id, adjustment, appliesToPriceIntervalIds, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -1445,24 +1501,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AdjustmentInterval = apply { - if (validated) { - return@apply - } - - id() - adjustment().validate() - appliesToPriceIntervalIds() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1666,10 +1713,25 @@ private constructor( }, checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AdjustmentInterval = apply { + if (validated) { + return@apply + } + + id() + adjustment().validate() + appliesToPriceIntervalIds() + endDate() + startDate() + validated = true + } + @JsonDeserialize(using = Adjustment.Deserializer::class) @JsonSerialize(using = Adjustment.Serializer::class) class Adjustment @@ -1958,35 +2020,50 @@ private constructor( } } - @NoAutoDetect class PlanPhaseUsageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + usageDiscount, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2113,26 +2190,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseUsageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2370,10 +2436,27 @@ private constructor( checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseUsageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + usageDiscount() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -2494,35 +2577,50 @@ private constructor( "PlanPhaseUsageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, usageDiscount=$usageDiscount, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseAmountDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + amountDiscount, + appliesToPriceIds, + isInvoiceLevel, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -2649,26 +2747,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseAmountDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - amountDiscount() - appliesToPriceIds() - isInvoiceLevel() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2906,10 +2993,27 @@ private constructor( checkRequired("isInvoiceLevel", isInvoiceLevel), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseAmountDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + amountDiscount() + appliesToPriceIds() + isInvoiceLevel() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3030,35 +3134,50 @@ private constructor( "PlanPhaseAmountDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhasePercentageDiscountAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val percentageDiscount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + percentageDiscount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3186,26 +3305,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhasePercentageDiscountAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - percentageDiscount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -3445,10 +3553,27 @@ private constructor( checkRequired("percentageDiscount", percentageDiscount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhasePercentageDiscountAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + percentageDiscount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -3569,38 +3694,55 @@ private constructor( "PlanPhasePercentageDiscountAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, percentageDiscount=$percentageDiscount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMinimumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("item_id") - @ExcludeMissing - private val itemId: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val itemId: JsonField, + private val minimumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("item_id") + @ExcludeMissing + itemId: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + itemId, + minimumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -3744,27 +3886,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMinimumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - itemId() - minimumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4018,10 +4148,28 @@ private constructor( checkRequired("minimumAmount", minimumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMinimumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + itemId() + minimumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4142,35 +4290,50 @@ private constructor( "PlanPhaseMinimumAdjustment{id=$id, adjustmentType=$adjustmentType, appliesToPriceIds=$appliesToPriceIds, isInvoiceLevel=$isInvoiceLevel, itemId=$itemId, minimumAmount=$minimumAmount, planPhaseOrder=$planPhaseOrder, reason=$reason, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PlanPhaseMaximumAdjustment - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("adjustment_type") - @ExcludeMissing - private val adjustmentType: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("is_invoice_level") - @ExcludeMissing - private val isInvoiceLevel: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("plan_phase_order") - @ExcludeMissing - private val planPhaseOrder: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val adjustmentType: JsonField, + private val appliesToPriceIds: JsonField>, + private val isInvoiceLevel: JsonField, + private val maximumAmount: JsonField, + private val planPhaseOrder: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("adjustment_type") + @ExcludeMissing + adjustmentType: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("is_invoice_level") + @ExcludeMissing + isInvoiceLevel: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("plan_phase_order") + @ExcludeMissing + planPhaseOrder: JsonField = JsonMissing.of(), + @JsonProperty("reason") + @ExcludeMissing + reason: JsonField = JsonMissing.of(), + ) : this( + id, + adjustmentType, + appliesToPriceIds, + isInvoiceLevel, + maximumAmount, + planPhaseOrder, + reason, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -4297,26 +4460,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PlanPhaseMaximumAdjustment = apply { - if (validated) { - return@apply - } - - id() - adjustmentType() - appliesToPriceIds() - isInvoiceLevel() - maximumAmount() - planPhaseOrder() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4553,10 +4705,27 @@ private constructor( checkRequired("maximumAmount", maximumAmount), checkRequired("planPhaseOrder", planPhaseOrder), checkRequired("reason", reason), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PlanPhaseMaximumAdjustment = apply { + if (validated) { + return@apply + } + + id() + adjustmentType() + appliesToPriceIds() + isInvoiceLevel() + maximumAmount() + planPhaseOrder() + reason() + validated = true + } + class AdjustmentType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -4696,19 +4865,21 @@ private constructor( "AdjustmentInterval{id=$id, adjustment=$adjustment, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class BillingCycleAnchorConfiguration - @JsonCreator private constructor( - @JsonProperty("day") @ExcludeMissing private val day: JsonField = JsonMissing.of(), - @JsonProperty("month") - @ExcludeMissing - private val month: JsonField = JsonMissing.of(), - @JsonProperty("year") @ExcludeMissing private val year: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val day: JsonField, + private val month: JsonField, + private val year: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("day") @ExcludeMissing day: JsonField = JsonMissing.of(), + @JsonProperty("month") @ExcludeMissing month: JsonField = JsonMissing.of(), + @JsonProperty("year") @ExcludeMissing year: JsonField = JsonMissing.of(), + ) : this(day, month, year, mutableMapOf()) + /** * The day of the month on which the billing cycle is anchored. If the maximum number of * days in a month is greater than this value, the last day of the month is the billing @@ -4759,22 +4930,15 @@ private constructor( */ @JsonProperty("year") @ExcludeMissing fun _year(): JsonField = year + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillingCycleAnchorConfiguration = apply { - if (validated) { - return@apply - } - - day() - month() - year() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -4913,10 +5077,23 @@ private constructor( checkRequired("day", day), month, year, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillingCycleAnchorConfiguration = apply { + if (validated) { + return@apply + } + + day() + month() + year() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -5112,32 +5289,47 @@ private constructor( } } - @NoAutoDetect class AmountDiscountInterval - @JsonCreator private constructor( - @JsonProperty("amount_discount") - @ExcludeMissing - private val amountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val amountDiscount: JsonField, + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("amount_discount") + @ExcludeMissing + amountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + amountDiscount, + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + mutableMapOf(), + ) + /** * Only available if discount_type is `amount`. * @@ -5251,25 +5443,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): AmountDiscountInterval = apply { - if (validated) { - return@apply - } - - amountDiscount() - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5483,10 +5665,26 @@ private constructor( checkRequired("discountType", discountType), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): AmountDiscountInterval = apply { + if (validated) { + return@apply + } + + amountDiscount() + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -5605,32 +5803,47 @@ private constructor( "AmountDiscountInterval{amountDiscount=$amountDiscount, appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class PercentageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("percentage_discount") - @ExcludeMissing - private val percentageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val percentageDiscount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("percentage_discount") + @ExcludeMissing + percentageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + percentageDiscount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -5744,25 +5957,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PercentageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - percentageDiscount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -5980,10 +6183,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("percentageDiscount", percentageDiscount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): PercentageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + percentageDiscount() + startDate() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6102,32 +6321,47 @@ private constructor( "PercentageDiscountInterval{appliesToPriceIds=$appliesToPriceIds, appliesToPriceIntervalIds=$appliesToPriceIntervalIds, discountType=$discountType, endDate=$endDate, percentageDiscount=$percentageDiscount, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class UsageDiscountInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val discountType: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val usageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + discountType, + endDate, + startDate, + usageDiscount, + mutableMapOf(), + ) + /** * The price ids that this discount interval applies to. * @@ -6242,25 +6476,15 @@ private constructor( @ExcludeMissing fun _usageDiscount(): JsonField = usageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UsageDiscountInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - discountType() - endDate() - startDate() - usageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6476,10 +6700,26 @@ private constructor( checkRequired("endDate", endDate), checkRequired("startDate", startDate), checkRequired("usageDiscount", usageDiscount), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UsageDiscountInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + discountType() + endDate() + startDate() + usageDiscount() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { @@ -6599,26 +6839,29 @@ private constructor( } } - @NoAutoDetect class FixedFeeQuantitySchedule - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") @ExcludeMissing priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(endDate, priceId, quantity, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -6676,23 +6919,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantitySchedule = apply { - if (validated) { - return@apply - } - - endDate() - priceId() - quantity() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -6819,10 +7054,24 @@ private constructor( checkRequired("priceId", priceId), checkRequired("quantity", quantity), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantitySchedule = apply { + if (validated) { + return@apply + } + + endDate() + priceId() + quantity() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -6841,29 +7090,42 @@ private constructor( "FixedFeeQuantitySchedule{endDate=$endDate, priceId=$priceId, quantity=$quantity, startDate=$startDate, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MaximumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("maximum_amount") - @ExcludeMissing - private val maximumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val maximumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("maximum_amount") + @ExcludeMissing + maximumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + maximumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this maximum interval applies to. * @@ -6956,24 +7218,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MaximumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - maximumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7161,10 +7414,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("maximumAmount", maximumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MaximumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + maximumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7188,27 +7456,20 @@ private constructor( * dictionary. Individual keys can be removed by setting the value to `null`, and the entire * metadata mapping can be cleared by setting `metadata` to `null`. */ - @NoAutoDetect class Metadata - @JsonCreator - private constructor( + private constructor(private val additionalProperties: MutableMap) { + + @JsonCreator private constructor() : this(mutableMapOf()) + @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap() - ) { + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Metadata = apply { - if (validated) { - return@apply - } - - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7252,7 +7513,17 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toImmutable()) + fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): Metadata = apply { + if (validated) { + return@apply + } + + validated = true } override fun equals(other: Any?): Boolean { @@ -7272,29 +7543,42 @@ private constructor( override fun toString() = "Metadata{additionalProperties=$additionalProperties}" } - @NoAutoDetect class MinimumInterval - @JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("applies_to_price_interval_ids") - @ExcludeMissing - private val appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("minimum_amount") - @ExcludeMissing - private val minimumAmount: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val appliesToPriceIntervalIds: JsonField>, + private val endDate: JsonField, + private val minimumAmount: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("applies_to_price_interval_ids") + @ExcludeMissing + appliesToPriceIntervalIds: JsonField> = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("minimum_amount") + @ExcludeMissing + minimumAmount: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + appliesToPriceIntervalIds, + endDate, + minimumAmount, + startDate, + mutableMapOf(), + ) + /** * The price ids that this minimum interval applies to. * @@ -7387,24 +7671,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MinimumInterval = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - appliesToPriceIntervalIds() - endDate() - minimumAmount() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -7592,10 +7867,25 @@ private constructor( checkRequired("endDate", endDate), checkRequired("minimumAmount", minimumAmount), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MinimumInterval = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + appliesToPriceIntervalIds() + endDate() + minimumAmount() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -7618,43 +7908,62 @@ private constructor( * The Price Interval resource represents a period of time for which a price will bill on a * subscription. A subscription’s price intervals define its billing behavior. */ - @NoAutoDetect class PriceInterval - @JsonCreator private constructor( - @JsonProperty("id") @ExcludeMissing private val id: JsonField = JsonMissing.of(), - @JsonProperty("billing_cycle_day") - @ExcludeMissing - private val billingCycleDay: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_end_date") - @ExcludeMissing - private val currentBillingPeriodEndDate: JsonField = JsonMissing.of(), - @JsonProperty("current_billing_period_start_date") - @ExcludeMissing - private val currentBillingPeriodStartDate: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("filter") - @ExcludeMissing - private val filter: JsonField = JsonMissing.of(), - @JsonProperty("fixed_fee_quantity_transitions") - @ExcludeMissing - private val fixedFeeQuantityTransitions: JsonField> = - JsonMissing.of(), - @JsonProperty("price") - @ExcludeMissing - private val price: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonProperty("usage_customer_ids") - @ExcludeMissing - private val usageCustomerIds: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val billingCycleDay: JsonField, + private val currentBillingPeriodEndDate: JsonField, + private val currentBillingPeriodStartDate: JsonField, + private val endDate: JsonField, + private val filter: JsonField, + private val fixedFeeQuantityTransitions: JsonField>, + private val price: JsonField, + private val startDate: JsonField, + private val usageCustomerIds: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("billing_cycle_day") + @ExcludeMissing + billingCycleDay: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_end_date") + @ExcludeMissing + currentBillingPeriodEndDate: JsonField = JsonMissing.of(), + @JsonProperty("current_billing_period_start_date") + @ExcludeMissing + currentBillingPeriodStartDate: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("filter") @ExcludeMissing filter: JsonField = JsonMissing.of(), + @JsonProperty("fixed_fee_quantity_transitions") + @ExcludeMissing + fixedFeeQuantityTransitions: JsonField> = + JsonMissing.of(), + @JsonProperty("price") @ExcludeMissing price: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + @JsonProperty("usage_customer_ids") + @ExcludeMissing + usageCustomerIds: JsonField> = JsonMissing.of(), + ) : this( + id, + billingCycleDay, + currentBillingPeriodEndDate, + currentBillingPeriodStartDate, + endDate, + filter, + fixedFeeQuantityTransitions, + price, + startDate, + usageCustomerIds, + mutableMapOf(), + ) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -7852,29 +8161,15 @@ private constructor( @ExcludeMissing fun _usageCustomerIds(): JsonField> = usageCustomerIds + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): PriceInterval = apply { - if (validated) { - return@apply - } - - id() - billingCycleDay() - currentBillingPeriodEndDate() - currentBillingPeriodStartDate() - endDate() - filter() - fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } - price().validate() - startDate() - usageCustomerIds() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8359,27 +8654,51 @@ private constructor( checkRequired("price", price), checkRequired("startDate", startDate), checkRequired("usageCustomerIds", usageCustomerIds).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): PriceInterval = apply { + if (validated) { + return@apply + } + + id() + billingCycleDay() + currentBillingPeriodEndDate() + currentBillingPeriodStartDate() + endDate() + filter() + fixedFeeQuantityTransitions().ifPresent { it.forEach { it.validate() } } + price().validate() + startDate() + usageCustomerIds() + validated = true + } + class FixedFeeQuantityTransition - @JsonCreator private constructor( - @JsonProperty("effective_date") - @ExcludeMissing - private val effectiveDate: JsonField = JsonMissing.of(), - @JsonProperty("price_id") - @ExcludeMissing - private val priceId: JsonField = JsonMissing.of(), - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val effectiveDate: JsonField, + private val priceId: JsonField, + private val quantity: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("effective_date") + @ExcludeMissing + effectiveDate: JsonField = JsonMissing.of(), + @JsonProperty("price_id") + @ExcludeMissing + priceId: JsonField = JsonMissing.of(), + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + ) : this(effectiveDate, priceId, quantity, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -8426,22 +8745,15 @@ private constructor( */ @JsonProperty("quantity") @ExcludeMissing fun _quantity(): JsonField = quantity + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): FixedFeeQuantityTransition = apply { - if (validated) { - return@apply - } - - effectiveDate() - priceId() - quantity() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8555,10 +8867,23 @@ private constructor( checkRequired("effectiveDate", effectiveDate), checkRequired("priceId", priceId), checkRequired("quantity", quantity), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): FixedFeeQuantityTransition = apply { + if (validated) { + return@apply + } + + effectiveDate() + priceId() + quantity() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8595,23 +8920,27 @@ private constructor( "PriceInterval{id=$id, billingCycleDay=$billingCycleDay, currentBillingPeriodEndDate=$currentBillingPeriodEndDate, currentBillingPeriodStartDate=$currentBillingPeriodStartDate, endDate=$endDate, filter=$filter, fixedFeeQuantityTransitions=$fixedFeeQuantityTransitions, price=$price, startDate=$startDate, usageCustomerIds=$usageCustomerIds, additionalProperties=$additionalProperties}" } - @NoAutoDetect class RedeemedCoupon - @JsonCreator private constructor( - @JsonProperty("coupon_id") - @ExcludeMissing - private val couponId: JsonField = JsonMissing.of(), - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonProperty("start_date") - @ExcludeMissing - private val startDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val couponId: JsonField, + private val endDate: JsonField, + private val startDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("coupon_id") + @ExcludeMissing + couponId: JsonField = JsonMissing.of(), + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of(), + @JsonProperty("start_date") + @ExcludeMissing + startDate: JsonField = JsonMissing.of(), + ) : this(couponId, endDate, startDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -8656,22 +8985,15 @@ private constructor( @ExcludeMissing fun _startDate(): JsonField = startDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): RedeemedCoupon = apply { - if (validated) { - return@apply - } - - couponId() - endDate() - startDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -8782,10 +9104,23 @@ private constructor( checkRequired("couponId", couponId), checkRequired("endDate", endDate), checkRequired("startDate", startDate), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): RedeemedCoupon = apply { + if (validated) { + return@apply + } + + couponId() + endDate() + startDate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -8907,17 +9242,19 @@ private constructor( override fun toString() = value.toString() } - @NoAutoDetect class TrialInfo - @JsonCreator private constructor( - @JsonProperty("end_date") - @ExcludeMissing - private val endDate: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val endDate: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("end_date") + @ExcludeMissing + endDate: JsonField = JsonMissing.of() + ) : this(endDate, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the * server responded with an unexpected value). @@ -8934,20 +9271,15 @@ private constructor( @ExcludeMissing fun _endDate(): JsonField = endDate + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TrialInfo = apply { - if (validated) { - return@apply - } - - endDate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -9022,7 +9354,18 @@ private constructor( * @throws IllegalStateException if any required field is unset. */ fun build(): TrialInfo = - TrialInfo(checkRequired("endDate", endDate), additionalProperties.toImmutable()) + TrialInfo(checkRequired("endDate", endDate), additionalProperties.toMutableMap()) + } + + private var validated: Boolean = false + + fun validate(): TrialInfo = apply { + if (validated) { + return@apply + } + + endDate() + validated = true } override fun equals(other: Any?): Boolean { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUsage.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUsage.kt index 7025b83c..26f37d27 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUsage.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUsage.kt @@ -20,14 +20,13 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -171,17 +170,17 @@ private constructor( } } - @NoAutoDetect class UngroupedSubscriptionUsage - @JsonCreator private constructor( - @JsonProperty("data") - @ExcludeMissing - private val data: JsonField> = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val data: JsonField>, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") @ExcludeMissing data: JsonField> = JsonMissing.of() + ) : this(data, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -195,20 +194,15 @@ private constructor( */ @JsonProperty("data") @ExcludeMissing fun _data(): JsonField> = data + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UngroupedSubscriptionUsage = apply { - if (validated) { - return@apply - } - - data().forEach { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -298,27 +292,42 @@ private constructor( fun build(): UngroupedSubscriptionUsage = UngroupedSubscriptionUsage( checkRequired("data", data).map { it.toImmutable() }, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): UngroupedSubscriptionUsage = apply { + if (validated) { + return@apply + } + + data().forEach { it.validate() } + validated = true + } + class Data - @JsonCreator private constructor( - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("usage") - @ExcludeMissing - private val usage: JsonField> = JsonMissing.of(), - @JsonProperty("view_mode") - @ExcludeMissing - private val viewMode: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val billableMetric: JsonField, + private val usage: JsonField>, + private val viewMode: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("usage") + @ExcludeMissing + usage: JsonField> = JsonMissing.of(), + @JsonProperty("view_mode") + @ExcludeMissing + viewMode: JsonField = JsonMissing.of(), + ) : this(billableMetric, usage, viewMode, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -367,22 +376,15 @@ private constructor( @ExcludeMissing fun _viewMode(): JsonField = viewMode + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Data = apply { - if (validated) { - return@apply - } - - billableMetric().validate() - usage().forEach { it.validate() } - viewMode() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -508,24 +510,36 @@ private constructor( checkRequired("billableMetric", billableMetric), checkRequired("usage", usage).map { it.toImmutable() }, checkRequired("viewMode", viewMode), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): Data = apply { + if (validated) { + return@apply + } + + billableMetric().validate() + usage().forEach { it.validate() } + viewMode() + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -555,21 +569,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -662,10 +670,22 @@ private constructor( BillableMetric( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -684,23 +704,27 @@ private constructor( "BillableMetric{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Usage - @JsonCreator private constructor( - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_end") - @ExcludeMissing - private val timeframeEnd: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_start") - @ExcludeMissing - private val timeframeStart: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val quantity: JsonField, + private val timeframeEnd: JsonField, + private val timeframeStart: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_end") + @ExcludeMissing + timeframeEnd: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_start") + @ExcludeMissing + timeframeStart: JsonField = JsonMissing.of(), + ) : this(quantity, timeframeEnd, timeframeStart, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -752,22 +776,15 @@ private constructor( @ExcludeMissing fun _timeframeStart(): JsonField = timeframeStart + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Usage = apply { - if (validated) { - return@apply - } - - quantity() - timeframeEnd() - timeframeStart() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -882,10 +899,23 @@ private constructor( checkRequired("quantity", quantity), checkRequired("timeframeEnd", timeframeEnd), checkRequired("timeframeStart", timeframeStart), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Usage = apply { + if (validated) { + return@apply + } + + quantity() + timeframeEnd() + timeframeStart() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -1044,20 +1074,21 @@ private constructor( "UngroupedSubscriptionUsage{data=$data, additionalProperties=$additionalProperties}" } - @NoAutoDetect class GroupedSubscriptionUsage - @JsonCreator private constructor( - @JsonProperty("data") - @ExcludeMissing - private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - @ExcludeMissing - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") @ExcludeMissing data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + @ExcludeMissing + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected value). @@ -1088,21 +1119,15 @@ private constructor( @ExcludeMissing fun _paginationMetadata(): JsonField = paginationMetadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): GroupedSubscriptionUsage = apply { - if (validated) { - return@apply - } - - data().forEach { it.validate() } - paginationMetadata().ifPresent { it.validate() } - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1214,30 +1239,47 @@ private constructor( GroupedSubscriptionUsage( checkRequired("data", data).map { it.toImmutable() }, paginationMetadata, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): GroupedSubscriptionUsage = apply { + if (validated) { + return@apply + } + + data().forEach { it.validate() } + paginationMetadata().ifPresent { it.validate() } + validated = true + } + class Data - @JsonCreator private constructor( - @JsonProperty("billable_metric") - @ExcludeMissing - private val billableMetric: JsonField = JsonMissing.of(), - @JsonProperty("metric_group") - @ExcludeMissing - private val metricGroup: JsonField = JsonMissing.of(), - @JsonProperty("usage") - @ExcludeMissing - private val usage: JsonField> = JsonMissing.of(), - @JsonProperty("view_mode") - @ExcludeMissing - private val viewMode: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val billableMetric: JsonField, + private val metricGroup: JsonField, + private val usage: JsonField>, + private val viewMode: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("billable_metric") + @ExcludeMissing + billableMetric: JsonField = JsonMissing.of(), + @JsonProperty("metric_group") + @ExcludeMissing + metricGroup: JsonField = JsonMissing.of(), + @JsonProperty("usage") + @ExcludeMissing + usage: JsonField> = JsonMissing.of(), + @JsonProperty("view_mode") + @ExcludeMissing + viewMode: JsonField = JsonMissing.of(), + ) : this(billableMetric, metricGroup, usage, viewMode, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -1303,23 +1345,15 @@ private constructor( @ExcludeMissing fun _viewMode(): JsonField = viewMode + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Data = apply { - if (validated) { - return@apply - } - - billableMetric().validate() - metricGroup().validate() - usage().forEach { it.validate() } - viewMode() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1463,24 +1497,37 @@ private constructor( checkRequired("metricGroup", metricGroup), checkRequired("usage", usage).map { it.toImmutable() }, checkRequired("viewMode", viewMode), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } - @NoAutoDetect + private var validated: Boolean = false + + fun validate(): Data = apply { + if (validated) { + return@apply + } + + billableMetric().validate() + metricGroup().validate() + usage().forEach { it.validate() } + viewMode() + validated = true + } + class BillableMetric - @JsonCreator private constructor( - @JsonProperty("id") - @ExcludeMissing - private val id: JsonField = JsonMissing.of(), - @JsonProperty("name") - @ExcludeMissing - private val name: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val id: JsonField, + private val name: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("id") @ExcludeMissing id: JsonField = JsonMissing.of(), + @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), + ) : this(id, name, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -1510,21 +1557,15 @@ private constructor( */ @JsonProperty("name") @ExcludeMissing fun _name(): JsonField = name + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): BillableMetric = apply { - if (validated) { - return@apply - } - - id() - name() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1617,10 +1658,22 @@ private constructor( BillableMetric( checkRequired("id", id), checkRequired("name", name), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): BillableMetric = apply { + if (validated) { + return@apply + } + + id() + name() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -1639,20 +1692,23 @@ private constructor( "BillableMetric{id=$id, name=$name, additionalProperties=$additionalProperties}" } - @NoAutoDetect class MetricGroup - @JsonCreator private constructor( - @JsonProperty("property_key") - @ExcludeMissing - private val propertyKey: JsonField = JsonMissing.of(), - @JsonProperty("property_value") - @ExcludeMissing - private val propertyValue: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val propertyKey: JsonField, + private val propertyValue: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("property_key") + @ExcludeMissing + propertyKey: JsonField = JsonMissing.of(), + @JsonProperty("property_value") + @ExcludeMissing + propertyValue: JsonField = JsonMissing.of(), + ) : this(propertyKey, propertyValue, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -1687,21 +1743,15 @@ private constructor( @ExcludeMissing fun _propertyValue(): JsonField = propertyValue + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): MetricGroup = apply { - if (validated) { - return@apply - } - - propertyKey() - propertyValue() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -1799,10 +1849,22 @@ private constructor( MetricGroup( checkRequired("propertyKey", propertyKey), checkRequired("propertyValue", propertyValue), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): MetricGroup = apply { + if (validated) { + return@apply + } + + propertyKey() + propertyValue() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -1821,23 +1883,27 @@ private constructor( "MetricGroup{propertyKey=$propertyKey, propertyValue=$propertyValue, additionalProperties=$additionalProperties}" } - @NoAutoDetect class Usage - @JsonCreator private constructor( - @JsonProperty("quantity") - @ExcludeMissing - private val quantity: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_end") - @ExcludeMissing - private val timeframeEnd: JsonField = JsonMissing.of(), - @JsonProperty("timeframe_start") - @ExcludeMissing - private val timeframeStart: JsonField = JsonMissing.of(), - @JsonAnySetter - private val additionalProperties: Map = immutableEmptyMap(), + private val quantity: JsonField, + private val timeframeEnd: JsonField, + private val timeframeStart: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("quantity") + @ExcludeMissing + quantity: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_end") + @ExcludeMissing + timeframeEnd: JsonField = JsonMissing.of(), + @JsonProperty("timeframe_start") + @ExcludeMissing + timeframeStart: JsonField = JsonMissing.of(), + ) : this(quantity, timeframeEnd, timeframeStart, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is * unexpectedly missing or null (e.g. if the server responded with an unexpected @@ -1889,22 +1955,15 @@ private constructor( @ExcludeMissing fun _timeframeStart(): JsonField = timeframeStart + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Usage = apply { - if (validated) { - return@apply - } - - quantity() - timeframeEnd() - timeframeStart() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -2019,10 +2078,23 @@ private constructor( checkRequired("quantity", quantity), checkRequired("timeframeEnd", timeframeEnd), checkRequired("timeframeStart", timeframeStart), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Usage = apply { + if (validated) { + return@apply + } + + quantity() + timeframeEnd() + timeframeStart() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/Subscriptions.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/Subscriptions.kt index bd3b078b..2388e4b6 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/Subscriptions.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/Subscriptions.kt @@ -10,27 +10,30 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects -@NoAutoDetect class Subscriptions -@JsonCreator private constructor( - @JsonProperty("data") - @ExcludeMissing - private val data: JsonField> = JsonMissing.of(), - @JsonProperty("pagination_metadata") - @ExcludeMissing - private val paginationMetadata: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val data: JsonField>, + private val paginationMetadata: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("data") + @ExcludeMissing + data: JsonField> = JsonMissing.of(), + @JsonProperty("pagination_metadata") + @ExcludeMissing + paginationMetadata: JsonField = JsonMissing.of(), + ) : this(data, paginationMetadata, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -61,21 +64,15 @@ private constructor( @ExcludeMissing fun _paginationMetadata(): JsonField = paginationMetadata + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): Subscriptions = apply { - if (validated) { - return@apply - } - - data().forEach { it.validate() } - paginationMetadata().validate() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -182,10 +179,22 @@ private constructor( Subscriptions( checkRequired("data", data).map { it.toImmutable() }, checkRequired("paginationMetadata", paginationMetadata), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): Subscriptions = apply { + if (validated) { + return@apply + } + + data().forEach { it.validate() } + paginationMetadata().validate() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/TopLevelPingParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/TopLevelPingParams.kt index 7645ac3e..4d1671d0 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/TopLevelPingParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/TopLevelPingParams.kt @@ -2,7 +2,6 @@ package com.withorb.api.models -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.Params import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams @@ -25,10 +24,6 @@ private constructor( fun _additionalQueryParams(): QueryParams = additionalQueryParams - override fun _headers(): Headers = additionalHeaders - - override fun _queryParams(): QueryParams = additionalQueryParams - fun toBuilder() = Builder().from(this) companion object { @@ -40,7 +35,6 @@ private constructor( } /** A builder for [TopLevelPingParams]. */ - @NoAutoDetect class Builder internal constructor() { private var additionalHeaders: Headers.Builder = Headers.builder() @@ -159,6 +153,10 @@ private constructor( TopLevelPingParams(additionalHeaders.build(), additionalQueryParams.build()) } + override fun _headers(): Headers = additionalHeaders + + override fun _queryParams(): QueryParams = additionalQueryParams + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/TopLevelPingResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/TopLevelPingResponse.kt index 3c04c287..726afeb6 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/TopLevelPingResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/TopLevelPingResponse.kt @@ -10,23 +10,22 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap -import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects -@NoAutoDetect class TopLevelPingResponse -@JsonCreator private constructor( - @JsonProperty("response") - @ExcludeMissing - private val response: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val response: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("response") @ExcludeMissing response: JsonField = JsonMissing.of() + ) : this(response, mutableMapOf()) + /** * @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly * missing or null (e.g. if the server responded with an unexpected value). @@ -40,20 +39,15 @@ private constructor( */ @JsonProperty("response") @ExcludeMissing fun _response(): JsonField = response + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TopLevelPingResponse = apply { - if (validated) { - return@apply - } - - response() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -126,10 +120,21 @@ private constructor( fun build(): TopLevelPingResponse = TopLevelPingResponse( checkRequired("response", response), - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): TopLevelPingResponse = apply { + if (validated) { + return@apply + } + + response() + validated = true + } + override fun equals(other: Any?): Boolean { if (this === other) { return true diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/TrialDiscount.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/TrialDiscount.kt index b5f26169..93696097 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/TrialDiscount.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/TrialDiscount.kt @@ -11,38 +11,49 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class TrialDiscount -@JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonProperty("trial_amount_discount") - @ExcludeMissing - private val trialAmountDiscount: JsonField = JsonMissing.of(), - @JsonProperty("trial_percentage_discount") - @ExcludeMissing - private val trialPercentageDiscount: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val discountType: JsonField, + private val reason: JsonField, + private val trialAmountDiscount: JsonField, + private val trialPercentageDiscount: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("reason") @ExcludeMissing reason: JsonField = JsonMissing.of(), + @JsonProperty("trial_amount_discount") + @ExcludeMissing + trialAmountDiscount: JsonField = JsonMissing.of(), + @JsonProperty("trial_percentage_discount") + @ExcludeMissing + trialPercentageDiscount: JsonField = JsonMissing.of(), + ) : this( + appliesToPriceIds, + discountType, + reason, + trialAmountDiscount, + trialPercentageDiscount, + mutableMapOf(), + ) + /** * List of price_ids that this discount applies to. For plan/plan phase discounts, this can be a * subset of prices. @@ -128,24 +139,15 @@ private constructor( @ExcludeMissing fun _trialPercentageDiscount(): JsonField = trialPercentageDiscount + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): TrialDiscount = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - discountType() - reason() - trialAmountDiscount() - trialPercentageDiscount() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -329,10 +331,25 @@ private constructor( reason, trialAmountDiscount, trialPercentageDiscount, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): TrialDiscount = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + discountType() + reason() + trialAmountDiscount() + trialPercentageDiscount() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/UsageDiscount.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/UsageDiscount.kt index ebbdcfdc..3a08bd27 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/UsageDiscount.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/UsageDiscount.kt @@ -11,35 +11,38 @@ import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue -import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.checkKnown import com.withorb.api.core.checkRequired -import com.withorb.api.core.immutableEmptyMap import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException +import java.util.Collections import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull -@NoAutoDetect class UsageDiscount -@JsonCreator private constructor( - @JsonProperty("applies_to_price_ids") - @ExcludeMissing - private val appliesToPriceIds: JsonField> = JsonMissing.of(), - @JsonProperty("discount_type") - @ExcludeMissing - private val discountType: JsonField = JsonMissing.of(), - @JsonProperty("usage_discount") - @ExcludeMissing - private val usageDiscount: JsonField = JsonMissing.of(), - @JsonProperty("reason") - @ExcludeMissing - private val reason: JsonField = JsonMissing.of(), - @JsonAnySetter private val additionalProperties: Map = immutableEmptyMap(), + private val appliesToPriceIds: JsonField>, + private val discountType: JsonField, + private val usageDiscount: JsonField, + private val reason: JsonField, + private val additionalProperties: MutableMap, ) { + @JsonCreator + private constructor( + @JsonProperty("applies_to_price_ids") + @ExcludeMissing + appliesToPriceIds: JsonField> = JsonMissing.of(), + @JsonProperty("discount_type") + @ExcludeMissing + discountType: JsonField = JsonMissing.of(), + @JsonProperty("usage_discount") + @ExcludeMissing + usageDiscount: JsonField = JsonMissing.of(), + @JsonProperty("reason") @ExcludeMissing reason: JsonField = JsonMissing.of(), + ) : this(appliesToPriceIds, discountType, usageDiscount, reason, mutableMapOf()) + /** * List of price_ids that this discount applies to. For plan/plan phase discounts, this can be a * subset of prices. @@ -104,23 +107,15 @@ private constructor( */ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = additionalProperties - - private var validated: Boolean = false - - fun validate(): UsageDiscount = apply { - if (validated) { - return@apply - } - - appliesToPriceIds() - discountType() - usageDiscount() - reason() - validated = true - } + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) fun toBuilder() = Builder().from(this) @@ -269,10 +264,24 @@ private constructor( checkRequired("discountType", discountType), checkRequired("usageDiscount", usageDiscount), reason, - additionalProperties.toImmutable(), + additionalProperties.toMutableMap(), ) } + private var validated: Boolean = false + + fun validate(): UsageDiscount = apply { + if (validated) { + return@apply + } + + appliesToPriceIds() + discountType() + usageDiscount() + reason() + validated = true + } + class DiscountType @JsonCreator private constructor(private val value: JsonField) : Enum { diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/core/http/SerializerTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/core/http/SerializerTest.kt index b61203bc..dae552e2 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/core/http/SerializerTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/core/http/SerializerTest.kt @@ -11,7 +11,6 @@ import org.junit.jupiter.api.Test internal class SerializerTest { @JsonDeserialize(builder = ClassWithBooleanFieldPrefixedWithIs.Builder::class) - @NoAutoDetect class ClassWithBooleanFieldPrefixedWithIs private constructor( private val isActive: JsonField, @@ -60,7 +59,6 @@ internal class SerializerTest { fun builder() = Builder() } - @NoAutoDetect class Builder internal constructor() { private var isActive: JsonField = JsonMissing.of() From 8ef80f228767184e57ba876d5efe17e7e48b4210 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 26 Mar 2025 18:34:46 +0000 Subject: [PATCH 7/9] codegen metadata --- .stats.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.stats.yml b/.stats.yml index d1b66331..2262920e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,4 @@ configured_endpoints: 103 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/orb%2Forb-36a6db97756e8658369c9af3c0ac532ecacb032e5b8f6211094dcb4052943ff3.yml +openapi_spec_hash: 26886fa8e59fa3674320897e3409e540 +config_hash: ec4f1e02d3528e3a93a73e33bca17c2a From da01e21aab23d7a6b429cbc1c96f48354ca2f0ca Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 26 Mar 2025 22:51:33 +0000 Subject: [PATCH 8/9] chore(internal): delete unused methods and annotations (#369) fix(client): map deserialization bug --- .../withorb/api/models/AlertDisableParams.kt | 21 +- .../withorb/api/models/AlertEnableParams.kt | 21 +- .../com/withorb/api/models/BillableMetric.kt | 19 +- .../withorb/api/models/CouponArchiveParams.kt | 21 +- .../kotlin/com/withorb/api/models/Customer.kt | 18 +- .../api/models/CustomerCreateParams.kt | 18 +- ...editLedgerCreateEntryByExternalIdParams.kt | 91 +- ...itLedgerCreateEntryByExternalIdResponse.kt | 127 +- .../CustomerCreditLedgerCreateEntryParams.kt | 91 +- ...CustomerCreditLedgerCreateEntryResponse.kt | 127 +- ...merCreditLedgerListByExternalIdResponse.kt | 127 +- .../CustomerCreditLedgerListResponse.kt | 127 +- ...omerCreditTopUpDeleteByExternalIdParams.kt | 21 +- .../models/CustomerCreditTopUpDeleteParams.kt | 21 +- .../api/models/CustomerDeleteParams.kt | 21 +- ...dsFromGatewayByExternalCustomerIdParams.kt | 21 +- ...omerSyncPaymentMethodsFromGatewayParams.kt | 21 +- .../CustomerUpdateByExternalIdParams.kt | 18 +- .../api/models/CustomerUpdateParams.kt | 18 +- .../api/models/DimensionalPriceGroup.kt | 18 +- .../DimensionalPriceGroupCreateParams.kt | 18 +- .../api/models/EventBackfillCloseParams.kt | 21 +- .../api/models/EventBackfillRevertParams.kt | 21 +- .../api/models/EventDeprecateParams.kt | 21 +- .../kotlin/com/withorb/api/models/Invoice.kt | 18 +- .../withorb/api/models/InvoiceCreateParams.kt | 18 +- .../models/InvoiceFetchUpcomingResponse.kt | 18 +- .../withorb/api/models/InvoicePayParams.kt | 21 +- .../withorb/api/models/InvoiceUpdateParams.kt | 19 +- .../api/models/InvoiceVoidInvoiceParams.kt | 21 +- .../withorb/api/models/MetricCreateParams.kt | 19 +- .../withorb/api/models/MetricUpdateParams.kt | 19 +- .../kotlin/com/withorb/api/models/Plan.kt | 18 +- .../withorb/api/models/PlanCreateParams.kt | 774 ++++------ .../models/PlanExternalPlanIdUpdateParams.kt | 19 +- .../withorb/api/models/PlanUpdateParams.kt | 19 +- .../kotlin/com/withorb/api/models/Price.kt | 846 ++++------ .../withorb/api/models/PriceCreateParams.kt | 846 ++++------ .../PriceExternalPriceIdUpdateParams.kt | 19 +- .../withorb/api/models/PriceUpdateParams.kt | 19 +- .../com/withorb/api/models/Subscription.kt | 18 +- .../api/models/SubscriptionCancelResponse.kt | 18 +- .../api/models/SubscriptionCreateParams.kt | 1362 ++++++----------- .../api/models/SubscriptionCreateResponse.kt | 18 +- .../SubscriptionPriceIntervalsParams.kt | 752 +++------ .../SubscriptionPriceIntervalsResponse.kt | 18 +- .../SubscriptionSchedulePlanChangeParams.kt | 1344 +++++----------- .../SubscriptionSchedulePlanChangeResponse.kt | 18 +- .../SubscriptionTriggerPhaseResponse.kt | 18 +- ...ubscriptionUnscheduleCancellationParams.kt | 21 +- ...scriptionUnscheduleCancellationResponse.kt | 18 +- ...scheduleFixedFeeQuantityUpdatesResponse.kt | 18 +- ...ptionUnschedulePendingPlanChangesParams.kt | 21 +- ...ionUnschedulePendingPlanChangesResponse.kt | 18 +- ...scriptionUpdateFixedFeeQuantityResponse.kt | 18 +- .../api/models/SubscriptionUpdateParams.kt | 19 +- .../models/SubscriptionUpdateTrialResponse.kt | 18 +- 57 files changed, 2607 insertions(+), 4871 deletions(-) diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertDisableParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertDisableParams.kt index e17591a6..5eeecea4 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertDisableParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertDisableParams.kt @@ -2,15 +2,12 @@ package com.withorb.api.models -import com.fasterxml.jackson.annotation.JsonAnyGetter -import com.fasterxml.jackson.annotation.JsonAnySetter -import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import java.util.Collections +import com.withorb.api.core.toImmutable import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -26,7 +23,7 @@ private constructor( private val subscriptionId: String?, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: MutableMap, + private val additionalBodyProperties: Map, ) : Params { fun alertConfigurationId(): String = alertConfigurationId @@ -34,20 +31,12 @@ private constructor( /** Used to update the status of a plan alert scoped to this subscription_id */ fun subscriptionId(): Optional = Optional.ofNullable(subscriptionId) + fun _additionalBodyProperties(): Map = additionalBodyProperties + fun _additionalHeaders(): Headers = additionalHeaders fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JsonAnySetter - private fun putAdditionalBodyProperty(key: String, value: JsonValue) { - additionalBodyProperties.put(key, value) - } - - @JsonAnyGetter - @ExcludeMissing - fun _additionalBodyProperties(): Map = - Collections.unmodifiableMap(additionalBodyProperties) - fun toBuilder() = Builder().from(this) companion object { @@ -230,7 +219,7 @@ private constructor( subscriptionId, additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toMutableMap(), + additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertEnableParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertEnableParams.kt index 3b2f5350..95f1c457 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertEnableParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertEnableParams.kt @@ -2,15 +2,12 @@ package com.withorb.api.models -import com.fasterxml.jackson.annotation.JsonAnyGetter -import com.fasterxml.jackson.annotation.JsonAnySetter -import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import java.util.Collections +import com.withorb.api.core.toImmutable import java.util.Objects import java.util.Optional import kotlin.jvm.optionals.getOrNull @@ -26,7 +23,7 @@ private constructor( private val subscriptionId: String?, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: MutableMap, + private val additionalBodyProperties: Map, ) : Params { fun alertConfigurationId(): String = alertConfigurationId @@ -34,20 +31,12 @@ private constructor( /** Used to update the status of a plan alert scoped to this subscription_id */ fun subscriptionId(): Optional = Optional.ofNullable(subscriptionId) + fun _additionalBodyProperties(): Map = additionalBodyProperties + fun _additionalHeaders(): Headers = additionalHeaders fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JsonAnySetter - private fun putAdditionalBodyProperty(key: String, value: JsonValue) { - additionalBodyProperties.put(key, value) - } - - @JsonAnyGetter - @ExcludeMissing - fun _additionalBodyProperties(): Map = - Collections.unmodifiableMap(additionalBodyProperties) - fun toBuilder() = Builder().from(this) companion object { @@ -230,7 +219,7 @@ private constructor( subscriptionId, additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toMutableMap(), + additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/BillableMetric.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/BillableMetric.kt index 5581c5fe..8585a17c 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/BillableMetric.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/BillableMetric.kt @@ -12,6 +12,7 @@ import com.withorb.api.core.JsonField import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.checkRequired +import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.util.Collections import java.util.Objects @@ -329,19 +330,15 @@ private constructor( * metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -385,7 +382,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponArchiveParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponArchiveParams.kt index 64a8e455..c2c56d98 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponArchiveParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponArchiveParams.kt @@ -2,15 +2,12 @@ package com.withorb.api.models -import com.fasterxml.jackson.annotation.JsonAnyGetter -import com.fasterxml.jackson.annotation.JsonAnySetter -import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import java.util.Collections +import com.withorb.api.core.toImmutable import java.util.Objects import java.util.Optional @@ -24,25 +21,17 @@ private constructor( private val couponId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: MutableMap, + private val additionalBodyProperties: Map, ) : Params { fun couponId(): String = couponId + fun _additionalBodyProperties(): Map = additionalBodyProperties + fun _additionalHeaders(): Headers = additionalHeaders fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JsonAnySetter - private fun putAdditionalBodyProperty(key: String, value: JsonValue) { - additionalBodyProperties.put(key, value) - } - - @JsonAnyGetter - @ExcludeMissing - fun _additionalBodyProperties(): Map = - Collections.unmodifiableMap(additionalBodyProperties) - fun toBuilder() = Builder().from(this) companion object { @@ -213,7 +202,7 @@ private constructor( checkRequired("couponId", couponId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toMutableMap(), + additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/Customer.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/Customer.kt index e021a4fa..2f05f017 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/Customer.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/Customer.kt @@ -2187,19 +2187,15 @@ private constructor( * metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -2243,7 +2239,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreateParams.kt index 46d1ea2d..695b6d9b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreateParams.kt @@ -3259,19 +3259,15 @@ private constructor( * `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -3315,7 +3311,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryByExternalIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryByExternalIdParams.kt index 582f07e4..da41ea92 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryByExternalIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryByExternalIdParams.kt @@ -25,6 +25,7 @@ import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams +import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.LocalDate import java.time.OffsetDateTime @@ -1763,19 +1764,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -1822,7 +1819,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -2297,19 +2294,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -2356,7 +2349,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -2991,19 +2984,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -3050,7 +3039,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -3616,19 +3605,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -3675,7 +3660,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -4288,19 +4273,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -4347,7 +4328,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryByExternalIdResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryByExternalIdResponse.kt index 8db88ab9..07466b18 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryByExternalIdResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryByExternalIdResponse.kt @@ -22,6 +22,7 @@ import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow +import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime import java.util.Collections @@ -1630,19 +1631,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -1689,7 +1686,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -3063,19 +3060,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -3122,7 +3115,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -4443,19 +4436,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -4502,7 +4491,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -5774,19 +5763,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -5833,7 +5818,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -7181,19 +7166,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -7240,7 +7221,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -8630,19 +8611,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -8689,7 +8666,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -9959,19 +9936,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -10018,7 +9991,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryParams.kt index bfe3c39e..4e7639db 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryParams.kt @@ -25,6 +25,7 @@ import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams +import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.LocalDate import java.time.OffsetDateTime @@ -1758,19 +1759,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -1817,7 +1814,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -2292,19 +2289,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -2351,7 +2344,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -2986,19 +2979,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -3045,7 +3034,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -3611,19 +3600,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -3670,7 +3655,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -4283,19 +4268,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -4342,7 +4323,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryResponse.kt index c9a5311e..3f3a60da 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryResponse.kt @@ -22,6 +22,7 @@ import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow +import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime import java.util.Collections @@ -1617,19 +1618,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -1676,7 +1673,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -3050,19 +3047,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -3109,7 +3102,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -4430,19 +4423,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -4489,7 +4478,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -5761,19 +5750,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -5820,7 +5805,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -7168,19 +7153,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -7227,7 +7208,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -8617,19 +8598,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -8676,7 +8653,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -9946,19 +9923,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -10005,7 +9978,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdResponse.kt index c06d6cdd..3d4acc56 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdResponse.kt @@ -22,6 +22,7 @@ import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow +import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime import java.util.Collections @@ -1628,19 +1629,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -1687,7 +1684,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -3061,19 +3058,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -3120,7 +3113,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -4441,19 +4434,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -4500,7 +4489,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -5772,19 +5761,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -5831,7 +5816,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -7179,19 +7164,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -7238,7 +7219,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -8628,19 +8609,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -8687,7 +8664,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -9957,19 +9934,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -10016,7 +9989,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListResponse.kt index 9ebf4dea..beb252ff 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListResponse.kt @@ -22,6 +22,7 @@ import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.checkRequired import com.withorb.api.core.getOrThrow +import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.time.OffsetDateTime import java.util.Collections @@ -1609,19 +1610,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -1668,7 +1665,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -3042,19 +3039,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -3101,7 +3094,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -4422,19 +4415,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -4481,7 +4470,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -5753,19 +5742,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -5812,7 +5797,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -7160,19 +7145,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -7219,7 +7200,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -8609,19 +8590,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -8668,7 +8645,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -9938,19 +9915,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -9997,7 +9970,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteByExternalIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteByExternalIdParams.kt index 493ebdb4..a8c70942 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteByExternalIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteByExternalIdParams.kt @@ -2,15 +2,12 @@ package com.withorb.api.models -import com.fasterxml.jackson.annotation.JsonAnyGetter -import com.fasterxml.jackson.annotation.JsonAnySetter -import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import java.util.Collections +import com.withorb.api.core.toImmutable import java.util.Objects import java.util.Optional @@ -24,27 +21,19 @@ private constructor( private val topUpId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: MutableMap, + private val additionalBodyProperties: Map, ) : Params { fun externalCustomerId(): String = externalCustomerId fun topUpId(): String = topUpId + fun _additionalBodyProperties(): Map = additionalBodyProperties + fun _additionalHeaders(): Headers = additionalHeaders fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JsonAnySetter - private fun putAdditionalBodyProperty(key: String, value: JsonValue) { - additionalBodyProperties.put(key, value) - } - - @JsonAnyGetter - @ExcludeMissing - fun _additionalBodyProperties(): Map = - Collections.unmodifiableMap(additionalBodyProperties) - fun toBuilder() = Builder().from(this) companion object { @@ -230,7 +219,7 @@ private constructor( checkRequired("topUpId", topUpId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toMutableMap(), + additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteParams.kt index bbb02dc9..a915a6b2 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteParams.kt @@ -2,15 +2,12 @@ package com.withorb.api.models -import com.fasterxml.jackson.annotation.JsonAnyGetter -import com.fasterxml.jackson.annotation.JsonAnySetter -import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import java.util.Collections +import com.withorb.api.core.toImmutable import java.util.Objects import java.util.Optional @@ -24,27 +21,19 @@ private constructor( private val topUpId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: MutableMap, + private val additionalBodyProperties: Map, ) : Params { fun customerId(): String = customerId fun topUpId(): String = topUpId + fun _additionalBodyProperties(): Map = additionalBodyProperties + fun _additionalHeaders(): Headers = additionalHeaders fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JsonAnySetter - private fun putAdditionalBodyProperty(key: String, value: JsonValue) { - additionalBodyProperties.put(key, value) - } - - @JsonAnyGetter - @ExcludeMissing - fun _additionalBodyProperties(): Map = - Collections.unmodifiableMap(additionalBodyProperties) - fun toBuilder() = Builder().from(this) companion object { @@ -226,7 +215,7 @@ private constructor( checkRequired("topUpId", topUpId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toMutableMap(), + additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerDeleteParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerDeleteParams.kt index 901c05b8..4fc9dd07 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerDeleteParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerDeleteParams.kt @@ -2,15 +2,12 @@ package com.withorb.api.models -import com.fasterxml.jackson.annotation.JsonAnyGetter -import com.fasterxml.jackson.annotation.JsonAnySetter -import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import java.util.Collections +import com.withorb.api.core.toImmutable import java.util.Objects import java.util.Optional @@ -34,25 +31,17 @@ private constructor( private val customerId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: MutableMap, + private val additionalBodyProperties: Map, ) : Params { fun customerId(): String = customerId + fun _additionalBodyProperties(): Map = additionalBodyProperties + fun _additionalHeaders(): Headers = additionalHeaders fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JsonAnySetter - private fun putAdditionalBodyProperty(key: String, value: JsonValue) { - additionalBodyProperties.put(key, value) - } - - @JsonAnyGetter - @ExcludeMissing - fun _additionalBodyProperties(): Map = - Collections.unmodifiableMap(additionalBodyProperties) - fun toBuilder() = Builder().from(this) companion object { @@ -223,7 +212,7 @@ private constructor( checkRequired("customerId", customerId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toMutableMap(), + additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerSyncPaymentMethodsFromGatewayByExternalCustomerIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerSyncPaymentMethodsFromGatewayByExternalCustomerIdParams.kt index eb4d5771..c3e1f630 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerSyncPaymentMethodsFromGatewayByExternalCustomerIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerSyncPaymentMethodsFromGatewayByExternalCustomerIdParams.kt @@ -2,15 +2,12 @@ package com.withorb.api.models -import com.fasterxml.jackson.annotation.JsonAnyGetter -import com.fasterxml.jackson.annotation.JsonAnySetter -import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import java.util.Collections +import com.withorb.api.core.toImmutable import java.util.Objects import java.util.Optional @@ -27,25 +24,17 @@ private constructor( private val customerId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: MutableMap, + private val additionalBodyProperties: Map, ) : Params { fun customerId(): String = customerId + fun _additionalBodyProperties(): Map = additionalBodyProperties + fun _additionalHeaders(): Headers = additionalHeaders fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JsonAnySetter - private fun putAdditionalBodyProperty(key: String, value: JsonValue) { - additionalBodyProperties.put(key, value) - } - - @JsonAnyGetter - @ExcludeMissing - fun _additionalBodyProperties(): Map = - Collections.unmodifiableMap(additionalBodyProperties) - fun toBuilder() = Builder().from(this) companion object { @@ -229,7 +218,7 @@ private constructor( checkRequired("customerId", customerId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toMutableMap(), + additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerSyncPaymentMethodsFromGatewayParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerSyncPaymentMethodsFromGatewayParams.kt index c898bdf7..b7c4a948 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerSyncPaymentMethodsFromGatewayParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerSyncPaymentMethodsFromGatewayParams.kt @@ -2,15 +2,12 @@ package com.withorb.api.models -import com.fasterxml.jackson.annotation.JsonAnyGetter -import com.fasterxml.jackson.annotation.JsonAnySetter -import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import java.util.Collections +import com.withorb.api.core.toImmutable import java.util.Objects import java.util.Optional @@ -27,25 +24,17 @@ private constructor( private val externalCustomerId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: MutableMap, + private val additionalBodyProperties: Map, ) : Params { fun externalCustomerId(): String = externalCustomerId + fun _additionalBodyProperties(): Map = additionalBodyProperties + fun _additionalHeaders(): Headers = additionalHeaders fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JsonAnySetter - private fun putAdditionalBodyProperty(key: String, value: JsonValue) { - additionalBodyProperties.put(key, value) - } - - @JsonAnyGetter - @ExcludeMissing - fun _additionalBodyProperties(): Map = - Collections.unmodifiableMap(additionalBodyProperties) - fun toBuilder() = Builder().from(this) companion object { @@ -224,7 +213,7 @@ private constructor( checkRequired("externalCustomerId", externalCustomerId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toMutableMap(), + additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateByExternalIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateByExternalIdParams.kt index 9a154133..adb32522 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateByExternalIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateByExternalIdParams.kt @@ -3187,19 +3187,15 @@ private constructor( * `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -3243,7 +3239,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateParams.kt index 4b04690d..af6fcfbe 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateParams.kt @@ -3183,19 +3183,15 @@ private constructor( * `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -3239,7 +3235,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroup.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroup.kt index 6d6d80dd..7b13f317 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroup.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroup.kt @@ -386,19 +386,15 @@ private constructor( * metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -442,7 +438,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupCreateParams.kt index 4c6ae635..60882cb7 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/DimensionalPriceGroupCreateParams.kt @@ -722,19 +722,15 @@ private constructor( * `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -778,7 +774,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCloseParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCloseParams.kt index 532fad3d..d8b9ec10 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCloseParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCloseParams.kt @@ -2,15 +2,12 @@ package com.withorb.api.models -import com.fasterxml.jackson.annotation.JsonAnyGetter -import com.fasterxml.jackson.annotation.JsonAnySetter -import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import java.util.Collections +import com.withorb.api.core.toImmutable import java.util.Objects import java.util.Optional @@ -24,25 +21,17 @@ private constructor( private val backfillId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: MutableMap, + private val additionalBodyProperties: Map, ) : Params { fun backfillId(): String = backfillId + fun _additionalBodyProperties(): Map = additionalBodyProperties + fun _additionalHeaders(): Headers = additionalHeaders fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JsonAnySetter - private fun putAdditionalBodyProperty(key: String, value: JsonValue) { - additionalBodyProperties.put(key, value) - } - - @JsonAnyGetter - @ExcludeMissing - fun _additionalBodyProperties(): Map = - Collections.unmodifiableMap(additionalBodyProperties) - fun toBuilder() = Builder().from(this) companion object { @@ -214,7 +203,7 @@ private constructor( checkRequired("backfillId", backfillId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toMutableMap(), + additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillRevertParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillRevertParams.kt index 72c5e678..c1e0bc1d 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillRevertParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillRevertParams.kt @@ -2,15 +2,12 @@ package com.withorb.api.models -import com.fasterxml.jackson.annotation.JsonAnyGetter -import com.fasterxml.jackson.annotation.JsonAnySetter -import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import java.util.Collections +import com.withorb.api.core.toImmutable import java.util.Objects import java.util.Optional @@ -27,25 +24,17 @@ private constructor( private val backfillId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: MutableMap, + private val additionalBodyProperties: Map, ) : Params { fun backfillId(): String = backfillId + fun _additionalBodyProperties(): Map = additionalBodyProperties + fun _additionalHeaders(): Headers = additionalHeaders fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JsonAnySetter - private fun putAdditionalBodyProperty(key: String, value: JsonValue) { - additionalBodyProperties.put(key, value) - } - - @JsonAnyGetter - @ExcludeMissing - fun _additionalBodyProperties(): Map = - Collections.unmodifiableMap(additionalBodyProperties) - fun toBuilder() = Builder().from(this) companion object { @@ -217,7 +206,7 @@ private constructor( checkRequired("backfillId", backfillId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toMutableMap(), + additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventDeprecateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventDeprecateParams.kt index 59efc134..c40bd613 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventDeprecateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventDeprecateParams.kt @@ -2,15 +2,12 @@ package com.withorb.api.models -import com.fasterxml.jackson.annotation.JsonAnyGetter -import com.fasterxml.jackson.annotation.JsonAnySetter -import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import java.util.Collections +import com.withorb.api.core.toImmutable import java.util.Objects import java.util.Optional @@ -53,25 +50,17 @@ private constructor( private val eventId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: MutableMap, + private val additionalBodyProperties: Map, ) : Params { fun eventId(): String = eventId + fun _additionalBodyProperties(): Map = additionalBodyProperties + fun _additionalHeaders(): Headers = additionalHeaders fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JsonAnySetter - private fun putAdditionalBodyProperty(key: String, value: JsonValue) { - additionalBodyProperties.put(key, value) - } - - @JsonAnyGetter - @ExcludeMissing - fun _additionalBodyProperties(): Map = - Collections.unmodifiableMap(additionalBodyProperties) - fun toBuilder() = Builder().from(this) companion object { @@ -242,7 +231,7 @@ private constructor( checkRequired("eventId", eventId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toMutableMap(), + additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/Invoice.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/Invoice.kt index 4d6cfd79..2e62f035 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/Invoice.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/Invoice.kt @@ -13577,19 +13577,15 @@ private constructor( * metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -13633,7 +13629,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceCreateParams.kt index 99b10f8c..7223be93 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceCreateParams.kt @@ -1773,19 +1773,15 @@ private constructor( * `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -1829,7 +1825,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchUpcomingResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchUpcomingResponse.kt index 154766fd..0cdcbd06 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchUpcomingResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchUpcomingResponse.kt @@ -13568,19 +13568,15 @@ private constructor( * metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -13624,7 +13620,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoicePayParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoicePayParams.kt index 2eefcbd2..5f73683c 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoicePayParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoicePayParams.kt @@ -2,15 +2,12 @@ package com.withorb.api.models -import com.fasterxml.jackson.annotation.JsonAnyGetter -import com.fasterxml.jackson.annotation.JsonAnySetter -import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import java.util.Collections +import com.withorb.api.core.toImmutable import java.util.Objects import java.util.Optional @@ -23,25 +20,17 @@ private constructor( private val invoiceId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: MutableMap, + private val additionalBodyProperties: Map, ) : Params { fun invoiceId(): String = invoiceId + fun _additionalBodyProperties(): Map = additionalBodyProperties + fun _additionalHeaders(): Headers = additionalHeaders fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JsonAnySetter - private fun putAdditionalBodyProperty(key: String, value: JsonValue) { - additionalBodyProperties.put(key, value) - } - - @JsonAnyGetter - @ExcludeMissing - fun _additionalBodyProperties(): Map = - Collections.unmodifiableMap(additionalBodyProperties) - fun toBuilder() = Builder().from(this) companion object { @@ -212,7 +201,7 @@ private constructor( checkRequired("invoiceId", invoiceId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toMutableMap(), + additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceUpdateParams.kt index 9d3aa027..f6bfa3ff 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceUpdateParams.kt @@ -14,6 +14,7 @@ import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams +import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.util.Collections import java.util.Objects @@ -402,19 +403,15 @@ private constructor( * `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -458,7 +455,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceVoidInvoiceParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceVoidInvoiceParams.kt index c78a0b87..cfad5770 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceVoidInvoiceParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceVoidInvoiceParams.kt @@ -2,15 +2,12 @@ package com.withorb.api.models -import com.fasterxml.jackson.annotation.JsonAnyGetter -import com.fasterxml.jackson.annotation.JsonAnySetter -import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import java.util.Collections +import com.withorb.api.core.toImmutable import java.util.Objects import java.util.Optional @@ -30,25 +27,17 @@ private constructor( private val invoiceId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: MutableMap, + private val additionalBodyProperties: Map, ) : Params { fun invoiceId(): String = invoiceId + fun _additionalBodyProperties(): Map = additionalBodyProperties + fun _additionalHeaders(): Headers = additionalHeaders fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JsonAnySetter - private fun putAdditionalBodyProperty(key: String, value: JsonValue) { - additionalBodyProperties.put(key, value) - } - - @JsonAnyGetter - @ExcludeMissing - fun _additionalBodyProperties(): Map = - Collections.unmodifiableMap(additionalBodyProperties) - fun toBuilder() = Builder().from(this) companion object { @@ -220,7 +209,7 @@ private constructor( checkRequired("invoiceId", invoiceId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toMutableMap(), + additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricCreateParams.kt index 52a0e3be..2857173a 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricCreateParams.kt @@ -14,6 +14,7 @@ import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams +import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.util.Collections import java.util.Objects @@ -667,19 +668,15 @@ private constructor( * `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -723,7 +720,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricUpdateParams.kt index d7e00d4d..deac841b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricUpdateParams.kt @@ -14,6 +14,7 @@ import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams +import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.util.Collections import java.util.Objects @@ -400,19 +401,15 @@ private constructor( * `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -456,7 +453,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/Plan.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/Plan.kt index b4ae53fc..1abbdd01 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/Plan.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/Plan.kt @@ -4841,19 +4841,15 @@ private constructor( * metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -4897,7 +4893,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanCreateParams.kt index 65bdf0f2..12e1fd4b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanCreateParams.kt @@ -4114,19 +4114,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -4173,7 +4169,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -6112,19 +6108,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -6171,7 +6163,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -8398,19 +8390,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -8457,7 +8445,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -10608,19 +10596,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -10667,7 +10651,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -12866,19 +12850,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -12925,7 +12905,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -14857,19 +14837,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -14916,7 +14892,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -17069,19 +17045,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -17128,7 +17100,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -19239,19 +19211,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -19298,7 +19266,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -20422,19 +20390,15 @@ private constructor( } class ThresholdTotalAmountConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -20487,7 +20451,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ThresholdTotalAmountConfig = - ThresholdTotalAmountConfig(additionalProperties.toMutableMap()) + ThresholdTotalAmountConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -21145,19 +21109,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -21204,7 +21164,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -22321,19 +22281,15 @@ private constructor( } class TieredPackageConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -22385,7 +22341,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageConfig = - TieredPackageConfig(additionalProperties.toMutableMap()) + TieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -23043,19 +22999,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -23102,7 +23054,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -24222,19 +24174,15 @@ private constructor( } class TieredWithMinimumConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -24286,7 +24234,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithMinimumConfig = - TieredWithMinimumConfig(additionalProperties.toMutableMap()) + TieredWithMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -24944,19 +24892,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -25003,7 +24947,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -26122,19 +26066,15 @@ private constructor( } class UnitWithPercentConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -26186,7 +26126,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithPercentConfig = - UnitWithPercentConfig(additionalProperties.toMutableMap()) + UnitWithPercentConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -26844,19 +26784,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -26903,7 +26839,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -28027,19 +27963,15 @@ private constructor( } class PackageWithAllocationConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -28092,7 +28024,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): PackageWithAllocationConfig = - PackageWithAllocationConfig(additionalProperties.toMutableMap()) + PackageWithAllocationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -28750,19 +28682,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -28809,7 +28737,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -29930,19 +29858,15 @@ private constructor( } class TieredWithProrationConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -29995,7 +29919,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithProrationConfig = - TieredWithProrationConfig(additionalProperties.toMutableMap()) + TieredWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -30653,19 +30577,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -30712,7 +30632,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -31832,19 +31752,15 @@ private constructor( } class UnitWithProrationConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -31896,7 +31812,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithProrationConfig = - UnitWithProrationConfig(additionalProperties.toMutableMap()) + UnitWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -32554,19 +32470,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -32613,7 +32525,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -33635,19 +33547,15 @@ private constructor( } class GroupedAllocationConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -33699,7 +33607,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedAllocationConfig = - GroupedAllocationConfig(additionalProperties.toMutableMap()) + GroupedAllocationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -34455,19 +34363,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -34514,7 +34418,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -35547,19 +35451,15 @@ private constructor( } class GroupedWithProratedMinimumConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -35613,7 +35513,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithProratedMinimumConfig = - GroupedWithProratedMinimumConfig(additionalProperties.toMutableMap()) + GroupedWithProratedMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -36370,19 +36270,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -36429,7 +36325,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -37459,19 +37355,15 @@ private constructor( } class GroupedWithMeteredMinimumConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -37525,7 +37417,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithMeteredMinimumConfig = - GroupedWithMeteredMinimumConfig(additionalProperties.toMutableMap()) + GroupedWithMeteredMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -38281,19 +38173,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -38340,7 +38228,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -39366,19 +39254,15 @@ private constructor( } class MatrixWithDisplayNameConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -39431,7 +39315,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MatrixWithDisplayNameConfig = - MatrixWithDisplayNameConfig(additionalProperties.toMutableMap()) + MatrixWithDisplayNameConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -40187,19 +40071,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -40246,7 +40126,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -41139,19 +41019,15 @@ private constructor( } class BulkWithProrationConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -41203,7 +41079,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): BulkWithProrationConfig = - BulkWithProrationConfig(additionalProperties.toMutableMap()) + BulkWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -42088,19 +41964,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -42147,7 +42019,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -43173,19 +43045,15 @@ private constructor( } class GroupedTieredPackageConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -43238,7 +43106,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredPackageConfig = - GroupedTieredPackageConfig(additionalProperties.toMutableMap()) + GroupedTieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -43994,19 +43862,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -44053,7 +43917,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -45079,19 +44943,15 @@ private constructor( } class MaxGroupTieredPackageConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -45144,7 +45004,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MaxGroupTieredPackageConfig = - MaxGroupTieredPackageConfig(additionalProperties.toMutableMap()) + MaxGroupTieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -45900,19 +45760,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -45959,7 +45815,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -47103,19 +46959,15 @@ private constructor( } class ScalableMatrixWithUnitPricingConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -47169,7 +47021,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithUnitPricingConfig = - ScalableMatrixWithUnitPricingConfig(additionalProperties.toMutableMap()) + ScalableMatrixWithUnitPricingConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -47827,19 +47679,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -47886,7 +47734,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -49035,19 +48883,15 @@ private constructor( } class ScalableMatrixWithTieredPricingConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -49102,7 +48946,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithTieredPricingConfig = - ScalableMatrixWithTieredPricingConfig(additionalProperties.toMutableMap()) + ScalableMatrixWithTieredPricingConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -49760,19 +49604,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -49819,7 +49659,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -50845,19 +50685,15 @@ private constructor( } class CumulativeGroupedBulkConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -50910,7 +50746,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): CumulativeGroupedBulkConfig = - CumulativeGroupedBulkConfig(additionalProperties.toMutableMap()) + CumulativeGroupedBulkConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -51666,19 +51502,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -51725,7 +51557,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -51780,19 +51612,15 @@ private constructor( * `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -51836,7 +51664,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanExternalPlanIdUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanExternalPlanIdUpdateParams.kt index 99963a35..5503bea7 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanExternalPlanIdUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanExternalPlanIdUpdateParams.kt @@ -14,6 +14,7 @@ import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams +import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.util.Collections import java.util.Objects @@ -493,19 +494,15 @@ private constructor( * `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -549,7 +546,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanUpdateParams.kt index d3290795..e9c61454 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanUpdateParams.kt @@ -14,6 +14,7 @@ import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams +import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.util.Collections import java.util.Objects @@ -490,19 +491,15 @@ private constructor( * `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -546,7 +543,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/Price.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/Price.kt index e9e0f201..6483bd22 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/Price.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/Price.kt @@ -3555,19 +3555,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -3614,7 +3610,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -7024,19 +7020,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -7083,7 +7075,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -11025,19 +11017,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -11084,7 +11072,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -14340,19 +14328,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -14399,7 +14383,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -18063,19 +18047,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -18122,7 +18102,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -22021,19 +22001,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -22080,7 +22056,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -25746,19 +25722,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -25805,7 +25777,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -29430,19 +29402,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -29489,7 +29457,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -32750,19 +32718,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -32809,7 +32773,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -33255,19 +33219,15 @@ private constructor( } class ThresholdTotalAmountConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -33319,7 +33279,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ThresholdTotalAmountConfig = - ThresholdTotalAmountConfig(additionalProperties.toMutableMap()) + ThresholdTotalAmountConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -36163,19 +36123,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -36222,7 +36178,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -36668,19 +36624,15 @@ private constructor( } class TieredPackageConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -36730,7 +36682,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageConfig = - TieredPackageConfig(additionalProperties.toMutableMap()) + TieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -38880,19 +38832,15 @@ private constructor( } class GroupedTieredConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -38942,7 +38890,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredConfig = - GroupedTieredConfig(additionalProperties.toMutableMap()) + GroupedTieredConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -39668,19 +39616,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -39727,7 +39671,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -42985,19 +42929,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -43044,7 +42984,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -43490,19 +43430,15 @@ private constructor( } class TieredWithMinimumConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -43554,7 +43490,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithMinimumConfig = - TieredWithMinimumConfig(additionalProperties.toMutableMap()) + TieredWithMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -46409,19 +46345,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -46468,7 +46400,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -46914,19 +46846,15 @@ private constructor( } class TieredPackageWithMinimumConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -46979,7 +46907,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageWithMinimumConfig = - TieredPackageWithMinimumConfig(additionalProperties.toMutableMap()) + TieredPackageWithMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -49828,19 +49756,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -49887,7 +49811,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -50231,19 +50155,15 @@ private constructor( } class PackageWithAllocationConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -50296,7 +50216,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): PackageWithAllocationConfig = - PackageWithAllocationConfig(additionalProperties.toMutableMap()) + PackageWithAllocationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -53243,19 +53163,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -53302,7 +53218,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -53748,19 +53664,15 @@ private constructor( } class UnitWithPercentConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -53811,7 +53723,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithPercentConfig = - UnitWithPercentConfig(additionalProperties.toMutableMap()) + UnitWithPercentConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -57189,19 +57101,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -57248,7 +57156,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -60508,19 +60416,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -60567,7 +60471,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -61013,19 +60917,15 @@ private constructor( } class TieredWithProrationConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -61077,7 +60977,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithProrationConfig = - TieredWithProrationConfig(additionalProperties.toMutableMap()) + TieredWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -63921,19 +63821,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -63980,7 +63876,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -64426,19 +64322,15 @@ private constructor( } class UnitWithProrationConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -64490,7 +64382,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithProrationConfig = - UnitWithProrationConfig(additionalProperties.toMutableMap()) + UnitWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -66640,19 +66532,15 @@ private constructor( } class GroupedAllocationConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -66704,7 +66592,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedAllocationConfig = - GroupedAllocationConfig(additionalProperties.toMutableMap()) + GroupedAllocationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -67430,19 +67318,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -67489,7 +67373,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -70068,19 +69952,15 @@ private constructor( } class GroupedWithProratedMinimumConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -70134,7 +70014,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithProratedMinimumConfig = - GroupedWithProratedMinimumConfig(additionalProperties.toMutableMap()) + GroupedWithProratedMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -70860,19 +70740,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -70919,7 +70795,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -73498,19 +73374,15 @@ private constructor( } class GroupedWithMeteredMinimumConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -73564,7 +73436,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithMeteredMinimumConfig = - GroupedWithMeteredMinimumConfig(additionalProperties.toMutableMap()) + GroupedWithMeteredMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -74290,19 +74162,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -74349,7 +74217,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -77390,19 +77258,15 @@ private constructor( } class MatrixWithDisplayNameConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -77455,7 +77319,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MatrixWithDisplayNameConfig = - MatrixWithDisplayNameConfig(additionalProperties.toMutableMap()) + MatrixWithDisplayNameConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -77709,19 +77573,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -77768,7 +77628,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -80020,19 +79880,15 @@ private constructor( } class BulkWithProrationConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -80084,7 +79940,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): BulkWithProrationConfig = - BulkWithProrationConfig(additionalProperties.toMutableMap()) + BulkWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -81122,19 +80978,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -81181,7 +81033,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -83748,19 +83600,15 @@ private constructor( } class GroupedTieredPackageConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -83812,7 +83660,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredPackageConfig = - GroupedTieredPackageConfig(additionalProperties.toMutableMap()) + GroupedTieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -84538,19 +84386,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -84597,7 +84441,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -87638,19 +87482,15 @@ private constructor( } class MaxGroupTieredPackageConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -87703,7 +87543,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MaxGroupTieredPackageConfig = - MaxGroupTieredPackageConfig(additionalProperties.toMutableMap()) + MaxGroupTieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -87957,19 +87797,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -88016,7 +87852,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -91298,19 +91134,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -91357,7 +91189,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -91804,19 +91636,15 @@ private constructor( } class ScalableMatrixWithUnitPricingConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -91870,7 +91698,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithUnitPricingConfig = - ScalableMatrixWithUnitPricingConfig(additionalProperties.toMutableMap()) + ScalableMatrixWithUnitPricingConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -94740,19 +94568,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -94799,7 +94623,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -95246,19 +95070,15 @@ private constructor( } class ScalableMatrixWithTieredPricingConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -95312,7 +95132,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithTieredPricingConfig = - ScalableMatrixWithTieredPricingConfig(additionalProperties.toMutableMap()) + ScalableMatrixWithTieredPricingConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -97467,19 +97287,15 @@ private constructor( } class CumulativeGroupedBulkConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -97532,7 +97348,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): CumulativeGroupedBulkConfig = - CumulativeGroupedBulkConfig(additionalProperties.toMutableMap()) + CumulativeGroupedBulkConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -98258,19 +98074,15 @@ private constructor( * entire metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -98317,7 +98129,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceCreateParams.kt index 16c1aeb7..ce2871a5 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceCreateParams.kt @@ -3611,19 +3611,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -3670,7 +3666,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -5608,19 +5604,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -5667,7 +5659,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -7892,19 +7884,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -7951,7 +7939,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -10234,19 +10222,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -10293,7 +10277,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -12442,19 +12426,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -12501,7 +12481,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -14698,19 +14678,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -14757,7 +14733,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -16685,19 +16661,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -16744,7 +16716,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -18896,19 +18868,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -18955,7 +18923,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -21062,19 +21030,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -21121,7 +21085,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -22241,19 +22205,15 @@ private constructor( } class ThresholdTotalAmountConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -22306,7 +22266,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ThresholdTotalAmountConfig = - ThresholdTotalAmountConfig(additionalProperties.toMutableMap()) + ThresholdTotalAmountConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -22964,19 +22924,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -23023,7 +22979,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -24138,19 +24094,15 @@ private constructor( } class TieredPackageConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -24202,7 +24154,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageConfig = - TieredPackageConfig(additionalProperties.toMutableMap()) + TieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -24860,19 +24812,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -24919,7 +24867,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -25936,19 +25884,15 @@ private constructor( } class GroupedTieredConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -26000,7 +25944,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredConfig = - GroupedTieredConfig(additionalProperties.toMutableMap()) + GroupedTieredConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -26756,19 +26700,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -26815,7 +26755,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -27837,19 +27777,15 @@ private constructor( } class MaxGroupTieredPackageConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -27902,7 +27838,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MaxGroupTieredPackageConfig = - MaxGroupTieredPackageConfig(additionalProperties.toMutableMap()) + MaxGroupTieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -28658,19 +28594,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -28717,7 +28649,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -29834,19 +29766,15 @@ private constructor( } class TieredWithMinimumConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -29898,7 +29826,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithMinimumConfig = - TieredWithMinimumConfig(additionalProperties.toMutableMap()) + TieredWithMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -30556,19 +30484,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -30615,7 +30539,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -31735,19 +31659,15 @@ private constructor( } class PackageWithAllocationConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -31800,7 +31720,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): PackageWithAllocationConfig = - PackageWithAllocationConfig(additionalProperties.toMutableMap()) + PackageWithAllocationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -32458,19 +32378,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -32517,7 +32433,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -33642,19 +33558,15 @@ private constructor( } class TieredPackageWithMinimumConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -33708,7 +33620,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageWithMinimumConfig = - TieredPackageWithMinimumConfig(additionalProperties.toMutableMap()) + TieredPackageWithMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -34366,19 +34278,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -34425,7 +34333,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -35541,19 +35449,15 @@ private constructor( } class UnitWithPercentConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -35605,7 +35509,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithPercentConfig = - UnitWithPercentConfig(additionalProperties.toMutableMap()) + UnitWithPercentConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -36263,19 +36167,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -36322,7 +36222,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -37440,19 +37340,15 @@ private constructor( } class TieredWithProrationConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -37505,7 +37401,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithProrationConfig = - TieredWithProrationConfig(additionalProperties.toMutableMap()) + TieredWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -38163,19 +38059,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -38222,7 +38114,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -39339,19 +39231,15 @@ private constructor( } class UnitWithProrationConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -39403,7 +39291,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithProrationConfig = - UnitWithProrationConfig(additionalProperties.toMutableMap()) + UnitWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -40061,19 +39949,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -40120,7 +40004,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -41139,19 +41023,15 @@ private constructor( } class GroupedAllocationConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -41203,7 +41083,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedAllocationConfig = - GroupedAllocationConfig(additionalProperties.toMutableMap()) + GroupedAllocationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -41959,19 +41839,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -42018,7 +41894,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -43051,19 +42927,15 @@ private constructor( } class GroupedWithProratedMinimumConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -43117,7 +42989,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithProratedMinimumConfig = - GroupedWithProratedMinimumConfig(additionalProperties.toMutableMap()) + GroupedWithProratedMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -43874,19 +43746,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -43933,7 +43801,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -44963,19 +44831,15 @@ private constructor( } class GroupedWithMeteredMinimumConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -45029,7 +44893,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithMeteredMinimumConfig = - GroupedWithMeteredMinimumConfig(additionalProperties.toMutableMap()) + GroupedWithMeteredMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -45785,19 +45649,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -45844,7 +45704,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -46866,19 +46726,15 @@ private constructor( } class MatrixWithDisplayNameConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -46931,7 +46787,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MatrixWithDisplayNameConfig = - MatrixWithDisplayNameConfig(additionalProperties.toMutableMap()) + MatrixWithDisplayNameConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -47687,19 +47543,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -47746,7 +47598,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -48636,19 +48488,15 @@ private constructor( } class BulkWithProrationConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -48700,7 +48548,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): BulkWithProrationConfig = - BulkWithProrationConfig(additionalProperties.toMutableMap()) + BulkWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -49585,19 +49433,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -49644,7 +49488,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -50666,19 +50510,15 @@ private constructor( } class GroupedTieredPackageConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -50731,7 +50571,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredPackageConfig = - GroupedTieredPackageConfig(additionalProperties.toMutableMap()) + GroupedTieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -51487,19 +51327,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -51546,7 +51382,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -52687,19 +52523,15 @@ private constructor( } class ScalableMatrixWithUnitPricingConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -52753,7 +52585,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithUnitPricingConfig = - ScalableMatrixWithUnitPricingConfig(additionalProperties.toMutableMap()) + ScalableMatrixWithUnitPricingConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -53411,19 +53243,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -53470,7 +53298,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -54619,19 +54447,15 @@ private constructor( } class ScalableMatrixWithTieredPricingConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -54686,7 +54510,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithTieredPricingConfig = - ScalableMatrixWithTieredPricingConfig(additionalProperties.toMutableMap()) + ScalableMatrixWithTieredPricingConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -55344,19 +55168,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -55403,7 +55223,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -56425,19 +56245,15 @@ private constructor( } class CumulativeGroupedBulkConfig - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -56490,7 +56306,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): CumulativeGroupedBulkConfig = - CumulativeGroupedBulkConfig(additionalProperties.toMutableMap()) + CumulativeGroupedBulkConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -57246,19 +57062,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -57305,7 +57117,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceExternalPriceIdUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceExternalPriceIdUpdateParams.kt index 92d94138..34240c4c 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceExternalPriceIdUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceExternalPriceIdUpdateParams.kt @@ -14,6 +14,7 @@ import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams +import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.util.Collections import java.util.Objects @@ -405,19 +406,15 @@ private constructor( * `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -461,7 +458,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceUpdateParams.kt index 9314f7e4..732852c4 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceUpdateParams.kt @@ -14,6 +14,7 @@ import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams +import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.util.Collections import java.util.Objects @@ -400,19 +401,15 @@ private constructor( * `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -456,7 +453,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/Subscription.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/Subscription.kt index c145b5b7..2595aa18 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/Subscription.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/Subscription.kt @@ -7461,19 +7461,15 @@ private constructor( * metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -7517,7 +7513,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCancelResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCancelResponse.kt index 8c0bea1b..721c288f 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCancelResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCancelResponse.kt @@ -7449,19 +7449,15 @@ private constructor( * metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -7505,7 +7501,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCreateParams.kt index e4436102..02a23f6f 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCreateParams.kt @@ -11042,21 +11042,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -11104,7 +11098,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -13136,21 +13130,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -13198,7 +13186,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -15529,21 +15517,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -15591,7 +15573,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -17846,21 +17828,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -17908,7 +17884,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -20205,21 +20181,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -20267,7 +20237,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -22293,21 +22263,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -22355,7 +22319,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -24605,21 +24569,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -24667,7 +24625,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -26874,21 +26832,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -26936,7 +26888,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -28145,21 +28097,15 @@ private constructor( } class ThresholdTotalAmountConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -28213,7 +28159,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ThresholdTotalAmountConfig = - ThresholdTotalAmountConfig(additionalProperties.toMutableMap()) + ThresholdTotalAmountConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -28877,21 +28823,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -28939,7 +28879,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -30139,21 +30079,15 @@ private constructor( } class TieredPackageConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -30206,7 +30140,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageConfig = - TieredPackageConfig(additionalProperties.toMutableMap()) + TieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -30870,21 +30804,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -30932,7 +30860,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -32136,21 +32064,15 @@ private constructor( } class TieredWithMinimumConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -32204,7 +32126,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithMinimumConfig = - TieredWithMinimumConfig(additionalProperties.toMutableMap()) + TieredWithMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -32868,21 +32790,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -32930,7 +32846,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -34131,21 +34047,15 @@ private constructor( } class UnitWithPercentConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -34198,7 +34108,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithPercentConfig = - UnitWithPercentConfig(additionalProperties.toMutableMap()) + UnitWithPercentConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -34862,21 +34772,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -34924,7 +34828,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -36138,21 +36042,15 @@ private constructor( } class PackageWithAllocationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -36207,7 +36105,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): PackageWithAllocationConfig = - PackageWithAllocationConfig(additionalProperties.toMutableMap()) + PackageWithAllocationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -36871,21 +36769,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -36933,7 +36825,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -38140,21 +38032,15 @@ private constructor( } class TieredWithProrationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -38208,7 +38094,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithProrationConfig = - TieredWithProrationConfig(additionalProperties.toMutableMap()) + TieredWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -38872,21 +38758,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -38934,7 +38814,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -40138,21 +40018,15 @@ private constructor( } class UnitWithProrationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -40206,7 +40080,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithProrationConfig = - UnitWithProrationConfig(additionalProperties.toMutableMap()) + UnitWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -40870,21 +40744,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -40932,7 +40800,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -42035,21 +41903,15 @@ private constructor( } class GroupedAllocationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -42103,7 +41965,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedAllocationConfig = - GroupedAllocationConfig(additionalProperties.toMutableMap()) + GroupedAllocationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -42868,21 +42730,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -42930,7 +42786,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -44058,21 +43914,15 @@ private constructor( } class GroupedWithProratedMinimumConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -44127,7 +43977,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithProratedMinimumConfig = - GroupedWithProratedMinimumConfig(additionalProperties.toMutableMap()) + GroupedWithProratedMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -44893,21 +44743,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -44955,7 +44799,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -45927,21 +45771,15 @@ private constructor( } class BulkWithProrationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -45995,7 +45833,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): BulkWithProrationConfig = - BulkWithProrationConfig(additionalProperties.toMutableMap()) + BulkWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -46891,21 +46729,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -46953,7 +46785,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -48191,21 +48023,15 @@ private constructor( } class ScalableMatrixWithUnitPricingConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -48261,7 +48087,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithUnitPricingConfig = - ScalableMatrixWithUnitPricingConfig(additionalProperties.toMutableMap()) + ScalableMatrixWithUnitPricingConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -48925,21 +48751,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -48987,7 +48807,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -50226,21 +50046,15 @@ private constructor( } class ScalableMatrixWithTieredPricingConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -50298,7 +50112,7 @@ private constructor( */ fun build(): ScalableMatrixWithTieredPricingConfig = ScalableMatrixWithTieredPricingConfig( - additionalProperties.toMutableMap() + additionalProperties.toImmutable() ) } @@ -50963,21 +50777,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -51025,7 +50833,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -52138,21 +51946,15 @@ private constructor( } class CumulativeGroupedBulkConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -52207,7 +52009,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): CumulativeGroupedBulkConfig = - CumulativeGroupedBulkConfig(additionalProperties.toMutableMap()) + CumulativeGroupedBulkConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -52972,21 +52774,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -53034,7 +52830,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -54147,21 +53943,15 @@ private constructor( } class MaxGroupTieredPackageConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -54216,7 +54006,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MaxGroupTieredPackageConfig = - MaxGroupTieredPackageConfig(additionalProperties.toMutableMap()) + MaxGroupTieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -54981,21 +54771,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -55043,7 +54827,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -56170,21 +55954,15 @@ private constructor( } class GroupedWithMeteredMinimumConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -56239,7 +56017,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithMeteredMinimumConfig = - GroupedWithMeteredMinimumConfig(additionalProperties.toMutableMap()) + GroupedWithMeteredMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -57005,21 +56783,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -57067,7 +56839,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -58180,21 +57952,15 @@ private constructor( } class MatrixWithDisplayNameConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -58249,7 +58015,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MatrixWithDisplayNameConfig = - MatrixWithDisplayNameConfig(additionalProperties.toMutableMap()) + MatrixWithDisplayNameConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -59014,21 +58780,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -59076,7 +58836,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -60184,21 +59944,15 @@ private constructor( } class GroupedTieredPackageConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -60252,7 +60006,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredPackageConfig = - GroupedTieredPackageConfig(additionalProperties.toMutableMap()) + GroupedTieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -61017,21 +60771,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -61079,7 +60827,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -61508,19 +61256,15 @@ private constructor( * `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -61564,7 +61308,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -69298,21 +69042,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -69360,7 +69098,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -71392,21 +71130,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -71454,7 +71186,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -73785,21 +73517,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -73847,7 +73573,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -76102,21 +75828,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -76164,7 +75884,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -78461,21 +78181,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -78523,7 +78237,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -80549,21 +80263,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -80611,7 +80319,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -82861,21 +82569,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -82923,7 +82625,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -85130,21 +84832,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -85192,7 +84888,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -86401,21 +86097,15 @@ private constructor( } class ThresholdTotalAmountConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -86469,7 +86159,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ThresholdTotalAmountConfig = - ThresholdTotalAmountConfig(additionalProperties.toMutableMap()) + ThresholdTotalAmountConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -87133,21 +86823,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -87195,7 +86879,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -88395,21 +88079,15 @@ private constructor( } class TieredPackageConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -88462,7 +88140,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageConfig = - TieredPackageConfig(additionalProperties.toMutableMap()) + TieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -89126,21 +88804,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -89188,7 +88860,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -90392,21 +90064,15 @@ private constructor( } class TieredWithMinimumConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -90460,7 +90126,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithMinimumConfig = - TieredWithMinimumConfig(additionalProperties.toMutableMap()) + TieredWithMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -91124,21 +90790,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -91186,7 +90846,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -92387,21 +92047,15 @@ private constructor( } class UnitWithPercentConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -92454,7 +92108,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithPercentConfig = - UnitWithPercentConfig(additionalProperties.toMutableMap()) + UnitWithPercentConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -93118,21 +92772,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -93180,7 +92828,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -94394,21 +94042,15 @@ private constructor( } class PackageWithAllocationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -94463,7 +94105,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): PackageWithAllocationConfig = - PackageWithAllocationConfig(additionalProperties.toMutableMap()) + PackageWithAllocationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -95127,21 +94769,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -95189,7 +94825,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -96396,21 +96032,15 @@ private constructor( } class TieredWithProrationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -96464,7 +96094,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithProrationConfig = - TieredWithProrationConfig(additionalProperties.toMutableMap()) + TieredWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -97128,21 +96758,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -97190,7 +96814,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -98394,21 +98018,15 @@ private constructor( } class UnitWithProrationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -98462,7 +98080,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithProrationConfig = - UnitWithProrationConfig(additionalProperties.toMutableMap()) + UnitWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -99126,21 +98744,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -99188,7 +98800,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -100291,21 +99903,15 @@ private constructor( } class GroupedAllocationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -100359,7 +99965,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedAllocationConfig = - GroupedAllocationConfig(additionalProperties.toMutableMap()) + GroupedAllocationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -101124,21 +100730,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -101186,7 +100786,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -102314,21 +101914,15 @@ private constructor( } class GroupedWithProratedMinimumConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -102383,7 +101977,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithProratedMinimumConfig = - GroupedWithProratedMinimumConfig(additionalProperties.toMutableMap()) + GroupedWithProratedMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -103149,21 +102743,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -103211,7 +102799,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -104183,21 +103771,15 @@ private constructor( } class BulkWithProrationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -104251,7 +103833,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): BulkWithProrationConfig = - BulkWithProrationConfig(additionalProperties.toMutableMap()) + BulkWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -105147,21 +104729,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -105209,7 +104785,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -106447,21 +106023,15 @@ private constructor( } class ScalableMatrixWithUnitPricingConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -106517,7 +106087,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithUnitPricingConfig = - ScalableMatrixWithUnitPricingConfig(additionalProperties.toMutableMap()) + ScalableMatrixWithUnitPricingConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -107181,21 +106751,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -107243,7 +106807,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -108482,21 +108046,15 @@ private constructor( } class ScalableMatrixWithTieredPricingConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -108554,7 +108112,7 @@ private constructor( */ fun build(): ScalableMatrixWithTieredPricingConfig = ScalableMatrixWithTieredPricingConfig( - additionalProperties.toMutableMap() + additionalProperties.toImmutable() ) } @@ -109219,21 +108777,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -109281,7 +108833,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -110394,21 +109946,15 @@ private constructor( } class CumulativeGroupedBulkConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -110463,7 +110009,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): CumulativeGroupedBulkConfig = - CumulativeGroupedBulkConfig(additionalProperties.toMutableMap()) + CumulativeGroupedBulkConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -111228,21 +110774,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -111290,7 +110830,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -112403,21 +111943,15 @@ private constructor( } class MaxGroupTieredPackageConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -112472,7 +112006,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MaxGroupTieredPackageConfig = - MaxGroupTieredPackageConfig(additionalProperties.toMutableMap()) + MaxGroupTieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -113237,21 +112771,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -113299,7 +112827,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -114426,21 +113954,15 @@ private constructor( } class GroupedWithMeteredMinimumConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -114495,7 +114017,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithMeteredMinimumConfig = - GroupedWithMeteredMinimumConfig(additionalProperties.toMutableMap()) + GroupedWithMeteredMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -115261,21 +114783,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -115323,7 +114839,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -116436,21 +115952,15 @@ private constructor( } class MatrixWithDisplayNameConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -116505,7 +116015,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MatrixWithDisplayNameConfig = - MatrixWithDisplayNameConfig(additionalProperties.toMutableMap()) + MatrixWithDisplayNameConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -117270,21 +116780,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -117332,7 +116836,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -118440,21 +117944,15 @@ private constructor( } class GroupedTieredPackageConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -118508,7 +118006,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredPackageConfig = - GroupedTieredPackageConfig(additionalProperties.toMutableMap()) + GroupedTieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -119273,21 +118771,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -119335,7 +118827,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCreateResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCreateResponse.kt index b78490fc..238ed484 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCreateResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCreateResponse.kt @@ -7449,19 +7449,15 @@ private constructor( * metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -7505,7 +7501,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsParams.kt index fac4e6e4..7b76e52d 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsParams.kt @@ -7099,21 +7099,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -7161,7 +7155,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -9136,21 +9130,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -9198,7 +9186,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -11471,21 +11459,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -11533,7 +11515,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -13872,21 +13854,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -13934,7 +13910,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -16131,21 +16107,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -16193,7 +16163,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -18433,21 +18403,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -18495,7 +18459,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -20464,21 +20428,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -20526,7 +20484,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -22719,21 +22677,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -22781,7 +22733,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -24931,21 +24883,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -24993,7 +24939,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -26142,21 +26088,15 @@ private constructor( } class ThresholdTotalAmountConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -26210,7 +26150,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ThresholdTotalAmountConfig = - ThresholdTotalAmountConfig(additionalProperties.toMutableMap()) + ThresholdTotalAmountConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -26874,21 +26814,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -26936,7 +26870,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -28080,21 +28014,15 @@ private constructor( } class TieredPackageConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -28147,7 +28075,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageConfig = - TieredPackageConfig(additionalProperties.toMutableMap()) + TieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -28811,21 +28739,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -28873,7 +28795,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -29916,21 +29838,15 @@ private constructor( } class GroupedTieredConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -29983,7 +29899,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredConfig = - GroupedTieredConfig(additionalProperties.toMutableMap()) + GroupedTieredConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -30748,21 +30664,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -30810,7 +30720,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -31865,21 +31775,15 @@ private constructor( } class MaxGroupTieredPackageConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -31934,7 +31838,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MaxGroupTieredPackageConfig = - MaxGroupTieredPackageConfig(additionalProperties.toMutableMap()) + MaxGroupTieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -32699,21 +32603,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -32761,7 +32659,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -33906,21 +33804,15 @@ private constructor( } class TieredWithMinimumConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -33974,7 +33866,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithMinimumConfig = - TieredWithMinimumConfig(additionalProperties.toMutableMap()) + TieredWithMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -34638,21 +34530,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -34700,7 +34586,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -35856,21 +35742,15 @@ private constructor( } class PackageWithAllocationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -35925,7 +35805,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): PackageWithAllocationConfig = - PackageWithAllocationConfig(additionalProperties.toMutableMap()) + PackageWithAllocationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -36589,21 +36469,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -36651,7 +36525,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -37812,21 +37686,15 @@ private constructor( } class TieredPackageWithMinimumConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -37881,7 +37749,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageWithMinimumConfig = - TieredPackageWithMinimumConfig(additionalProperties.toMutableMap()) + TieredPackageWithMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -38545,21 +38413,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -38607,7 +38469,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -39752,21 +39614,15 @@ private constructor( } class UnitWithPercentConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -39819,7 +39675,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithPercentConfig = - UnitWithPercentConfig(additionalProperties.toMutableMap()) + UnitWithPercentConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -40483,21 +40339,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -40545,7 +40395,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -41693,21 +41543,15 @@ private constructor( } class TieredWithProrationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -41761,7 +41605,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithProrationConfig = - TieredWithProrationConfig(additionalProperties.toMutableMap()) + TieredWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -42425,21 +42269,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -42487,7 +42325,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -43632,21 +43470,15 @@ private constructor( } class UnitWithProrationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -43700,7 +43532,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithProrationConfig = - UnitWithProrationConfig(additionalProperties.toMutableMap()) + UnitWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -44364,21 +44196,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -44426,7 +44252,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -45470,21 +45296,15 @@ private constructor( } class GroupedAllocationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -45538,7 +45358,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedAllocationConfig = - GroupedAllocationConfig(additionalProperties.toMutableMap()) + GroupedAllocationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -46303,21 +46123,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -46365,7 +46179,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -47433,21 +47247,15 @@ private constructor( } class GroupedWithProratedMinimumConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -47502,7 +47310,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithProratedMinimumConfig = - GroupedWithProratedMinimumConfig(additionalProperties.toMutableMap()) + GroupedWithProratedMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -48268,21 +48076,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -48330,7 +48132,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -49396,21 +49198,15 @@ private constructor( } class GroupedWithMeteredMinimumConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -49465,7 +49261,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithMeteredMinimumConfig = - GroupedWithMeteredMinimumConfig(additionalProperties.toMutableMap()) + GroupedWithMeteredMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -50231,21 +50027,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -50293,7 +50083,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -51348,21 +51138,15 @@ private constructor( } class MatrixWithDisplayNameConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -51417,7 +51201,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MatrixWithDisplayNameConfig = - MatrixWithDisplayNameConfig(additionalProperties.toMutableMap()) + MatrixWithDisplayNameConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -52182,21 +51966,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -52244,7 +52022,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -53157,21 +52935,15 @@ private constructor( } class BulkWithProrationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -53225,7 +52997,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): BulkWithProrationConfig = - BulkWithProrationConfig(additionalProperties.toMutableMap()) + BulkWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -54121,21 +53893,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -54183,7 +53949,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -55231,21 +54997,15 @@ private constructor( } class GroupedTieredPackageConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -55299,7 +55059,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredPackageConfig = - GroupedTieredPackageConfig(additionalProperties.toMutableMap()) + GroupedTieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -56064,21 +55824,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -56126,7 +55880,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -57307,21 +57061,15 @@ private constructor( } class ScalableMatrixWithUnitPricingConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -57377,7 +57125,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithUnitPricingConfig = - ScalableMatrixWithUnitPricingConfig(additionalProperties.toMutableMap()) + ScalableMatrixWithUnitPricingConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -58041,21 +57789,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -58103,7 +57845,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -59285,21 +59027,15 @@ private constructor( } class ScalableMatrixWithTieredPricingConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -59357,7 +59093,7 @@ private constructor( */ fun build(): ScalableMatrixWithTieredPricingConfig = ScalableMatrixWithTieredPricingConfig( - additionalProperties.toMutableMap() + additionalProperties.toImmutable() ) } @@ -60022,21 +59758,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -60084,7 +59814,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -61139,21 +60869,15 @@ private constructor( } class CumulativeGroupedBulkConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -61208,7 +60932,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): CumulativeGroupedBulkConfig = - CumulativeGroupedBulkConfig(additionalProperties.toMutableMap()) + CumulativeGroupedBulkConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -61973,21 +61697,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -62035,7 +61753,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsResponse.kt index 45c88e1b..61ded1e1 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsResponse.kt @@ -7459,19 +7459,15 @@ private constructor( * metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -7515,7 +7511,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeParams.kt index 521ebe09..56827f70 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeParams.kt @@ -10783,21 +10783,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -10845,7 +10839,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -12877,21 +12871,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -12939,7 +12927,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -15270,21 +15258,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -15332,7 +15314,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -17587,21 +17569,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -17649,7 +17625,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -19946,21 +19922,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -20008,7 +19978,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -22034,21 +22004,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -22096,7 +22060,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -24346,21 +24310,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -24408,7 +24366,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -26615,21 +26573,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -26677,7 +26629,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -27886,21 +27838,15 @@ private constructor( } class ThresholdTotalAmountConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -27954,7 +27900,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ThresholdTotalAmountConfig = - ThresholdTotalAmountConfig(additionalProperties.toMutableMap()) + ThresholdTotalAmountConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -28618,21 +28564,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -28680,7 +28620,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -29880,21 +29820,15 @@ private constructor( } class TieredPackageConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -29947,7 +29881,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageConfig = - TieredPackageConfig(additionalProperties.toMutableMap()) + TieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -30611,21 +30545,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -30673,7 +30601,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -31877,21 +31805,15 @@ private constructor( } class TieredWithMinimumConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -31945,7 +31867,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithMinimumConfig = - TieredWithMinimumConfig(additionalProperties.toMutableMap()) + TieredWithMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -32609,21 +32531,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -32671,7 +32587,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -33872,21 +33788,15 @@ private constructor( } class UnitWithPercentConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -33939,7 +33849,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithPercentConfig = - UnitWithPercentConfig(additionalProperties.toMutableMap()) + UnitWithPercentConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -34603,21 +34513,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -34665,7 +34569,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -35879,21 +35783,15 @@ private constructor( } class PackageWithAllocationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -35948,7 +35846,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): PackageWithAllocationConfig = - PackageWithAllocationConfig(additionalProperties.toMutableMap()) + PackageWithAllocationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -36612,21 +36510,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -36674,7 +36566,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -37881,21 +37773,15 @@ private constructor( } class TieredWithProrationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -37949,7 +37835,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithProrationConfig = - TieredWithProrationConfig(additionalProperties.toMutableMap()) + TieredWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -38613,21 +38499,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -38675,7 +38555,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -39879,21 +39759,15 @@ private constructor( } class UnitWithProrationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -39947,7 +39821,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithProrationConfig = - UnitWithProrationConfig(additionalProperties.toMutableMap()) + UnitWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -40611,21 +40485,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -40673,7 +40541,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -41776,21 +41644,15 @@ private constructor( } class GroupedAllocationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -41844,7 +41706,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedAllocationConfig = - GroupedAllocationConfig(additionalProperties.toMutableMap()) + GroupedAllocationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -42609,21 +42471,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -42671,7 +42527,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -43799,21 +43655,15 @@ private constructor( } class GroupedWithProratedMinimumConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -43868,7 +43718,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithProratedMinimumConfig = - GroupedWithProratedMinimumConfig(additionalProperties.toMutableMap()) + GroupedWithProratedMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -44634,21 +44484,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -44696,7 +44540,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -45668,21 +45512,15 @@ private constructor( } class BulkWithProrationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -45736,7 +45574,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): BulkWithProrationConfig = - BulkWithProrationConfig(additionalProperties.toMutableMap()) + BulkWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -46632,21 +46470,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -46694,7 +46526,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -47932,21 +47764,15 @@ private constructor( } class ScalableMatrixWithUnitPricingConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -48002,7 +47828,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithUnitPricingConfig = - ScalableMatrixWithUnitPricingConfig(additionalProperties.toMutableMap()) + ScalableMatrixWithUnitPricingConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -48666,21 +48492,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -48728,7 +48548,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -49967,21 +49787,15 @@ private constructor( } class ScalableMatrixWithTieredPricingConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -50039,7 +49853,7 @@ private constructor( */ fun build(): ScalableMatrixWithTieredPricingConfig = ScalableMatrixWithTieredPricingConfig( - additionalProperties.toMutableMap() + additionalProperties.toImmutable() ) } @@ -50704,21 +50518,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -50766,7 +50574,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -51879,21 +51687,15 @@ private constructor( } class CumulativeGroupedBulkConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -51948,7 +51750,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): CumulativeGroupedBulkConfig = - CumulativeGroupedBulkConfig(additionalProperties.toMutableMap()) + CumulativeGroupedBulkConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -52713,21 +52515,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -52775,7 +52571,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -53888,21 +53684,15 @@ private constructor( } class MaxGroupTieredPackageConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -53957,7 +53747,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MaxGroupTieredPackageConfig = - MaxGroupTieredPackageConfig(additionalProperties.toMutableMap()) + MaxGroupTieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -54722,21 +54512,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -54784,7 +54568,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -55911,21 +55695,15 @@ private constructor( } class GroupedWithMeteredMinimumConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -55980,7 +55758,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithMeteredMinimumConfig = - GroupedWithMeteredMinimumConfig(additionalProperties.toMutableMap()) + GroupedWithMeteredMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -56746,21 +56524,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -56808,7 +56580,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -57921,21 +57693,15 @@ private constructor( } class MatrixWithDisplayNameConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -57990,7 +57756,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MatrixWithDisplayNameConfig = - MatrixWithDisplayNameConfig(additionalProperties.toMutableMap()) + MatrixWithDisplayNameConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -58755,21 +58521,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -58817,7 +58577,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -59925,21 +59685,15 @@ private constructor( } class GroupedTieredPackageConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -59993,7 +59747,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredPackageConfig = - GroupedTieredPackageConfig(additionalProperties.toMutableMap()) + GroupedTieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -60758,21 +60512,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -60820,7 +60568,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -68951,21 +68699,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -69013,7 +68755,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -71045,21 +70787,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -71107,7 +70843,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -73438,21 +73174,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -73500,7 +73230,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -75755,21 +75485,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -75817,7 +75541,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -78114,21 +77838,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -78176,7 +77894,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -80202,21 +79920,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -80264,7 +79976,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -82514,21 +82226,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -82576,7 +82282,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -84783,21 +84489,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -84845,7 +84545,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -86054,21 +85754,15 @@ private constructor( } class ThresholdTotalAmountConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -86122,7 +85816,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ThresholdTotalAmountConfig = - ThresholdTotalAmountConfig(additionalProperties.toMutableMap()) + ThresholdTotalAmountConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -86786,21 +86480,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -86848,7 +86536,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -88048,21 +87736,15 @@ private constructor( } class TieredPackageConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -88115,7 +87797,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredPackageConfig = - TieredPackageConfig(additionalProperties.toMutableMap()) + TieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -88779,21 +88461,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -88841,7 +88517,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -90045,21 +89721,15 @@ private constructor( } class TieredWithMinimumConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -90113,7 +89783,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithMinimumConfig = - TieredWithMinimumConfig(additionalProperties.toMutableMap()) + TieredWithMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -90777,21 +90447,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -90839,7 +90503,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -92040,21 +91704,15 @@ private constructor( } class UnitWithPercentConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -92107,7 +91765,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithPercentConfig = - UnitWithPercentConfig(additionalProperties.toMutableMap()) + UnitWithPercentConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -92771,21 +92429,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -92833,7 +92485,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -94047,21 +93699,15 @@ private constructor( } class PackageWithAllocationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -94116,7 +93762,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): PackageWithAllocationConfig = - PackageWithAllocationConfig(additionalProperties.toMutableMap()) + PackageWithAllocationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -94780,21 +94426,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -94842,7 +94482,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -96049,21 +95689,15 @@ private constructor( } class TieredWithProrationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -96117,7 +95751,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): TieredWithProrationConfig = - TieredWithProrationConfig(additionalProperties.toMutableMap()) + TieredWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -96781,21 +96415,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -96843,7 +96471,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -98047,21 +97675,15 @@ private constructor( } class UnitWithProrationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -98115,7 +97737,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): UnitWithProrationConfig = - UnitWithProrationConfig(additionalProperties.toMutableMap()) + UnitWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -98779,21 +98401,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -98841,7 +98457,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -99944,21 +99560,15 @@ private constructor( } class GroupedAllocationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -100012,7 +99622,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedAllocationConfig = - GroupedAllocationConfig(additionalProperties.toMutableMap()) + GroupedAllocationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -100777,21 +100387,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -100839,7 +100443,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -101967,21 +101571,15 @@ private constructor( } class GroupedWithProratedMinimumConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -102036,7 +101634,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithProratedMinimumConfig = - GroupedWithProratedMinimumConfig(additionalProperties.toMutableMap()) + GroupedWithProratedMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -102802,21 +102400,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -102864,7 +102456,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -103836,21 +103428,15 @@ private constructor( } class BulkWithProrationConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -103904,7 +103490,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): BulkWithProrationConfig = - BulkWithProrationConfig(additionalProperties.toMutableMap()) + BulkWithProrationConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -104800,21 +104386,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -104862,7 +104442,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -106100,21 +105680,15 @@ private constructor( } class ScalableMatrixWithUnitPricingConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -106170,7 +105744,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): ScalableMatrixWithUnitPricingConfig = - ScalableMatrixWithUnitPricingConfig(additionalProperties.toMutableMap()) + ScalableMatrixWithUnitPricingConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -106834,21 +106408,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -106896,7 +106464,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -108135,21 +107703,15 @@ private constructor( } class ScalableMatrixWithTieredPricingConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -108207,7 +107769,7 @@ private constructor( */ fun build(): ScalableMatrixWithTieredPricingConfig = ScalableMatrixWithTieredPricingConfig( - additionalProperties.toMutableMap() + additionalProperties.toImmutable() ) } @@ -108872,21 +108434,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -108934,7 +108490,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -110047,21 +109603,15 @@ private constructor( } class CumulativeGroupedBulkConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -110116,7 +109666,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): CumulativeGroupedBulkConfig = - CumulativeGroupedBulkConfig(additionalProperties.toMutableMap()) + CumulativeGroupedBulkConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -110881,21 +110431,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -110943,7 +110487,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -112056,21 +111600,15 @@ private constructor( } class MaxGroupTieredPackageConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -112125,7 +111663,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MaxGroupTieredPackageConfig = - MaxGroupTieredPackageConfig(additionalProperties.toMutableMap()) + MaxGroupTieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -112890,21 +112428,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -112952,7 +112484,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -114079,21 +113611,15 @@ private constructor( } class GroupedWithMeteredMinimumConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -114148,7 +113674,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedWithMeteredMinimumConfig = - GroupedWithMeteredMinimumConfig(additionalProperties.toMutableMap()) + GroupedWithMeteredMinimumConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -114914,21 +114440,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -114976,7 +114496,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -116089,21 +115609,15 @@ private constructor( } class MatrixWithDisplayNameConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -116158,7 +115672,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): MatrixWithDisplayNameConfig = - MatrixWithDisplayNameConfig(additionalProperties.toMutableMap()) + MatrixWithDisplayNameConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -116923,21 +116437,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -116985,7 +116493,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -118093,21 +117601,15 @@ private constructor( } class GroupedTieredPackageConfig + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -118161,7 +117663,7 @@ private constructor( * Further updates to this [Builder] will not mutate the returned instance. */ fun build(): GroupedTieredPackageConfig = - GroupedTieredPackageConfig(additionalProperties.toMutableMap()) + GroupedTieredPackageConfig(additionalProperties.toImmutable()) } private var validated: Boolean = false @@ -118926,21 +118428,15 @@ private constructor( * setting `metadata` to `null`. */ class Metadata + @JsonCreator private constructor( - private val additionalProperties: MutableMap + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map ) { - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } - @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -118988,7 +118484,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeResponse.kt index df81b42a..43a0718c 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeResponse.kt @@ -7460,19 +7460,15 @@ private constructor( * metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -7516,7 +7512,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionTriggerPhaseResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionTriggerPhaseResponse.kt index 12b0be89..8625be0b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionTriggerPhaseResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionTriggerPhaseResponse.kt @@ -7457,19 +7457,15 @@ private constructor( * metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -7513,7 +7509,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleCancellationParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleCancellationParams.kt index 8509ce45..4160e4e1 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleCancellationParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleCancellationParams.kt @@ -2,15 +2,12 @@ package com.withorb.api.models -import com.fasterxml.jackson.annotation.JsonAnyGetter -import com.fasterxml.jackson.annotation.JsonAnySetter -import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import java.util.Collections +import com.withorb.api.core.toImmutable import java.util.Objects import java.util.Optional @@ -26,25 +23,17 @@ private constructor( private val subscriptionId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: MutableMap, + private val additionalBodyProperties: Map, ) : Params { fun subscriptionId(): String = subscriptionId + fun _additionalBodyProperties(): Map = additionalBodyProperties + fun _additionalHeaders(): Headers = additionalHeaders fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JsonAnySetter - private fun putAdditionalBodyProperty(key: String, value: JsonValue) { - additionalBodyProperties.put(key, value) - } - - @JsonAnyGetter - @ExcludeMissing - fun _additionalBodyProperties(): Map = - Collections.unmodifiableMap(additionalBodyProperties) - fun toBuilder() = Builder().from(this) companion object { @@ -221,7 +210,7 @@ private constructor( checkRequired("subscriptionId", subscriptionId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toMutableMap(), + additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleCancellationResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleCancellationResponse.kt index 3c6a2b9d..fa96c019 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleCancellationResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleCancellationResponse.kt @@ -7466,19 +7466,15 @@ private constructor( * metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -7522,7 +7518,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleFixedFeeQuantityUpdatesResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleFixedFeeQuantityUpdatesResponse.kt index daf39028..7de87f5d 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleFixedFeeQuantityUpdatesResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleFixedFeeQuantityUpdatesResponse.kt @@ -7474,19 +7474,15 @@ private constructor( * metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -7530,7 +7526,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnschedulePendingPlanChangesParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnschedulePendingPlanChangesParams.kt index 797f9f39..2f11af03 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnschedulePendingPlanChangesParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnschedulePendingPlanChangesParams.kt @@ -2,15 +2,12 @@ package com.withorb.api.models -import com.fasterxml.jackson.annotation.JsonAnyGetter -import com.fasterxml.jackson.annotation.JsonAnySetter -import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams -import java.util.Collections +import com.withorb.api.core.toImmutable import java.util.Objects import java.util.Optional @@ -20,25 +17,17 @@ private constructor( private val subscriptionId: String, private val additionalHeaders: Headers, private val additionalQueryParams: QueryParams, - private val additionalBodyProperties: MutableMap, + private val additionalBodyProperties: Map, ) : Params { fun subscriptionId(): String = subscriptionId + fun _additionalBodyProperties(): Map = additionalBodyProperties + fun _additionalHeaders(): Headers = additionalHeaders fun _additionalQueryParams(): QueryParams = additionalQueryParams - @JsonAnySetter - private fun putAdditionalBodyProperty(key: String, value: JsonValue) { - additionalBodyProperties.put(key, value) - } - - @JsonAnyGetter - @ExcludeMissing - fun _additionalBodyProperties(): Map = - Collections.unmodifiableMap(additionalBodyProperties) - fun toBuilder() = Builder().from(this) companion object { @@ -217,7 +206,7 @@ private constructor( checkRequired("subscriptionId", subscriptionId), additionalHeaders.build(), additionalQueryParams.build(), - additionalBodyProperties.toMutableMap(), + additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnschedulePendingPlanChangesResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnschedulePendingPlanChangesResponse.kt index afc38e04..2565142b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnschedulePendingPlanChangesResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnschedulePendingPlanChangesResponse.kt @@ -7470,19 +7470,15 @@ private constructor( * metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -7526,7 +7522,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateFixedFeeQuantityResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateFixedFeeQuantityResponse.kt index fe598650..6f507f99 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateFixedFeeQuantityResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateFixedFeeQuantityResponse.kt @@ -7466,19 +7466,15 @@ private constructor( * metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -7522,7 +7518,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateParams.kt index de990eb9..0740864b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateParams.kt @@ -14,6 +14,7 @@ import com.withorb.api.core.Params import com.withorb.api.core.checkRequired import com.withorb.api.core.http.Headers import com.withorb.api.core.http.QueryParams +import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import java.util.Collections import java.util.Objects @@ -801,19 +802,15 @@ private constructor( * `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -857,7 +854,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateTrialResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateTrialResponse.kt index 48bf844d..3624f224 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateTrialResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateTrialResponse.kt @@ -7457,19 +7457,15 @@ private constructor( * metadata mapping can be cleared by setting `metadata` to `null`. */ class Metadata - private constructor(private val additionalProperties: MutableMap) { - - @JsonCreator private constructor() : this(mutableMapOf()) - - @JsonAnySetter - private fun putAdditionalProperty(key: String, value: JsonValue) { - additionalProperties.put(key, value) - } + @JsonCreator + private constructor( + @com.fasterxml.jackson.annotation.JsonValue + private val additionalProperties: Map + ) { @JsonAnyGetter @ExcludeMissing - fun _additionalProperties(): Map = - Collections.unmodifiableMap(additionalProperties) + fun _additionalProperties(): Map = additionalProperties fun toBuilder() = Builder().from(this) @@ -7513,7 +7509,7 @@ private constructor( * * Further updates to this [Builder] will not mutate the returned instance. */ - fun build(): Metadata = Metadata(additionalProperties.toMutableMap()) + fun build(): Metadata = Metadata(additionalProperties.toImmutable()) } private var validated: Boolean = false From ed01c08b7f16078401925c3d7771385d625e056a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 26 Mar 2025 22:52:06 +0000 Subject: [PATCH 9/9] release: 0.52.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 30 ++++++++++++++++++++++++++++++ README.md | 6 +++--- build.gradle.kts | 2 +- 4 files changed, 35 insertions(+), 5 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 2b2b4fa9..fed4b17f 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.51.0" + ".": "0.52.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 317710e1..8b64a4d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,35 @@ # Changelog +## 0.52.0 (2025-03-26) + +Full Changelog: [v0.51.0...v0.52.0](https://github.com/orbcorp/orb-java/compare/v0.51.0...v0.52.0) + +### Features + +* **client:** support a lower jackson version ([#368](https://github.com/orbcorp/orb-java/issues/368)) ([659e62b](https://github.com/orbcorp/orb-java/commit/659e62bfba72b4fbf261db18cbcc4ced30f7953d)) +* **client:** throw on incompatible jackson version ([659e62b](https://github.com/orbcorp/orb-java/commit/659e62bfba72b4fbf261db18cbcc4ced30f7953d)) + + +### Bug Fixes + +* **client:** map deserialization bug ([da01e21](https://github.com/orbcorp/orb-java/commit/da01e21aab23d7a6b429cbc1c96f48354ca2f0ca)) + + +### Chores + +* **internal:** delete unused methods and annotations ([#369](https://github.com/orbcorp/orb-java/issues/369)) ([da01e21](https://github.com/orbcorp/orb-java/commit/da01e21aab23d7a6b429cbc1c96f48354ca2f0ca)) +* **internal:** fix example formatting ([#364](https://github.com/orbcorp/orb-java/issues/364)) ([99e8b5b](https://github.com/orbcorp/orb-java/commit/99e8b5b46b1cba17b06d5fa92fcf8e084d64f6b3)) +* **internal:** make multipart assertions more robust ([4f4527e](https://github.com/orbcorp/orb-java/commit/4f4527eaa976d407948d20998b46bc1489c86b2c)) +* **internal:** remove unnecessary `assertNotNull` calls ([4f4527e](https://github.com/orbcorp/orb-java/commit/4f4527eaa976d407948d20998b46bc1489c86b2c)) +* **internal:** remove unnecessary import ([#365](https://github.com/orbcorp/orb-java/issues/365)) ([3a0fe1e](https://github.com/orbcorp/orb-java/commit/3a0fe1e9bf719ef3606c30ff48ba6a7dd06f7911)) + + +### Documentation + +* minor readme tweak ([#367](https://github.com/orbcorp/orb-java/issues/367)) ([bc3f6c3](https://github.com/orbcorp/orb-java/commit/bc3f6c3c810124041192a841b531039b27cfb840)) +* refine comments on multipart params ([#362](https://github.com/orbcorp/orb-java/issues/362)) ([4f4527e](https://github.com/orbcorp/orb-java/commit/4f4527eaa976d407948d20998b46bc1489c86b2c)) +* update readme exception docs ([#366](https://github.com/orbcorp/orb-java/issues/366)) ([9443b23](https://github.com/orbcorp/orb-java/commit/9443b239a271eb97bf16f5d8cd432f6c97db2aa4)) + ## 0.51.0 (2025-03-20) Full Changelog: [v0.50.0...v0.51.0](https://github.com/orbcorp/orb-java/compare/v0.50.0...v0.51.0) diff --git a/README.md b/README.md index 89cb2ae7..69c6aa50 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ -[![Maven Central](https://img.shields.io/maven-central/v/com.withorb.api/orb-java)](https://central.sonatype.com/artifact/com.withorb.api/orb-java/0.51.0) +[![Maven Central](https://img.shields.io/maven-central/v/com.withorb.api/orb-java)](https://central.sonatype.com/artifact/com.withorb.api/orb-java/0.52.0) @@ -19,7 +19,7 @@ The REST API documentation can be found on [docs.withorb.com](https://docs.witho ### Gradle ```kotlin -implementation("com.withorb.api:orb-java:0.51.0") +implementation("com.withorb.api:orb-java:0.52.0") ``` ### Maven @@ -28,7 +28,7 @@ implementation("com.withorb.api:orb-java:0.51.0") com.withorb.api orb-java - 0.51.0 + 0.52.0 ``` diff --git a/build.gradle.kts b/build.gradle.kts index 1125eda6..3434d43f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,4 +1,4 @@ allprojects { group = "com.withorb.api" - version = "0.51.0" // x-release-please-version + version = "0.52.0" // x-release-please-version }